Rebase to FSF GDB 7.6.50.20130731 (pre-7.6 snapshot).

This commit is contained in:
Jan Kratochvil 2013-08-02 22:26:03 +02:00
parent 2f9bb15290
commit 872aab074e
46 changed files with 1545 additions and 13539 deletions

3
.gitignore vendored
View File

@ -1,2 +1,3 @@
/gdb-libstdc++-v3-python-r155978.tar.bz2 /gdb-libstdc++-v3-python-r155978.tar.bz2
/gdb-7.6.tar.bz2 /gdb-7.6.50.20130624.tar.bz2
/gdb-7.6.50.20130731-cvs.tar.bz2

View File

@ -1,8 +1,8 @@
Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.exp Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.exp 2009-06-29 16:24:36.000000000 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.exp 2013-08-02 22:24:04.747745133 +0200
@@ -0,0 +1,96 @@ @@ -0,0 +1,101 @@
+# Copyright 2007, 2009 Free Software Foundation, Inc. +# Copyright 2007, 2009 Free Software Foundation, Inc.
+ +
+# This program is free software; you can redistribute it and/or modify +# This program is free software; you can redistribute it and/or modify
@ -46,16 +46,21 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.exp
+gdb_breakpoint "initialized" +gdb_breakpoint "initialized"
+gdb_breakpoint "unresolved" +gdb_breakpoint "unresolved"
+ +
+set oldtimeout $timeout
+set timeout [expr $oldtimeout + 120]
+
+set test "Continue to initialized." +set test "Continue to initialized."
+gdb_test_multiple "continue" $test { +gdb_test_multiple "continue" $test {
+ -re "Breakpoint .*, initialized .* at .*\r\n$gdb_prompt $" { + -re "Breakpoint .*, initialized .* at .*\r\n$gdb_prompt $" {
+ pass $test + pass $test
+ } + }
+ -re "Breakpoint .*, unresolved .* at .*\r\n$gdb_prompt $" { + -re "Breakpoint .*, unresolved .* at .*\r\n$gdb_prompt $" {
+ set timeout $oldtimeout
+ unsupported $test + unsupported $test
+ return -1 + return -1
+ } + }
+} +}
+set timeout $oldtimeout
+ +
+set escapedfilename [string_to_regexp ${objdir}/${subdir}/gcore-shmid0.test] +set escapedfilename [string_to_regexp ${objdir}/${subdir}/gcore-shmid0.test]
+ +
@ -99,11 +104,11 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.exp
+ fail $test + fail $test
+ } + }
+} +}
Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.c Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.c 2009-06-29 16:22:49.000000000 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.c 2013-08-02 22:22:17.573599496 +0200
@@ -0,0 +1,123 @@ @@ -0,0 +1,127 @@
+/* Copyright 2007, 2009 Free Software Foundation, Inc. +/* Copyright 2007, 2009 Free Software Foundation, Inc.
+ +
+ This file is part of GDB. + This file is part of GDB.
@ -140,14 +145,18 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.c
+ +
+#define TIMEOUT_SEC 10 +#define TIMEOUT_SEC 10
+ +
+static volatile int v;
+
+static void +static void
+initialized (void) +initialized (void)
+{ +{
+ v++;
+} +}
+ +
+static void +static void
+unresolved (void) +unresolved (void)
+{ +{
+ v++;
+} +}
+ +
+int +int
@ -189,7 +198,7 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.c
+ } + }
+ +
+ printf ("Problem is not reproducible on this kernel (attempt %d, " + printf ("Problem is not reproducible on this kernel (attempt %d, "
+ "round %d))\n", attempt, round); + "round %d)\n", attempt, round);
+ unresolved (); + unresolved ();
+ exit (1); + exit (1);
+ } + }

View File

@ -11,11 +11,11 @@
* gdb.texinfo (File Options): Document --readnever. * gdb.texinfo (File Options): Document --readnever.
Index: gdb-7.5.50.20130215/gdb/doc/gdb.texinfo Index: gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/doc/gdb.texinfo 2013-02-15 22:31:37.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/doc/gdb.texinfo 2013-08-02 16:12:54.970085942 +0200
+++ gdb-7.5.50.20130215/gdb/doc/gdb.texinfo 2013-02-15 22:34:22.381165443 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo 2013-08-02 16:20:21.164687886 +0200
@@ -1026,6 +1026,12 @@ Read each symbol file's entire symbol ta @@ -1030,6 +1030,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.5.50.20130215/gdb/doc/gdb.texinfo
@end table @end table
@node Mode Options @node Mode Options
Index: gdb-7.5.50.20130215/gdb/main.c Index: gdb-7.6.50.20130731-cvs/gdb/main.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/main.c 2013-02-15 22:31:37.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/main.c 2013-08-02 16:12:54.974085948 +0200
+++ gdb-7.5.50.20130215/gdb/main.c 2013-02-15 22:34:22.382165445 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/main.c 2013-08-02 16:20:53.704731449 +0200
@@ -447,6 +447,7 @@ captured_main (void *data) @@ -459,6 +459,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,19 +40,19 @@ Index: gdb-7.5.50.20130215/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},
@@ -1165,6 +1166,7 @@ Options:\n\n\ @@ -1154,6 +1155,7 @@ Selection of debuggee and its files:\n\n
fputs_unfiltered (_("\ --se=FILE Use FILE as symbol file and executable file.\n\
--quiet Do not print version number on startup.\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\
+ --readnever Do not read symbol files.\n\ + --readnever Do not read symbol files.\n\
--write Set writing into executable and core files.\n\n\
"), stream); "), stream);
fputs_unfiltered (_("\ fputs_unfiltered (_("\
--se=FILE Use FILE as symbol file and executable file.\n\ Index: gdb-7.6.50.20130731-cvs/gdb/symfile.c
Index: gdb-7.5.50.20130215/gdb/symfile.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/symfile.c 2013-02-01 20:39:03.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/symfile.c 2013-08-02 16:12:54.975085949 +0200
+++ gdb-7.5.50.20130215/gdb/symfile.c 2013-02-15 22:34:22.383165447 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/symfile.c 2013-08-02 16:20:21.165687888 +0200
@@ -81,6 +81,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. */
int readnow_symbol_files; /* Read full symbols immediately. */ int readnow_symbol_files; /* Read full symbols immediately. */
@ -60,19 +60,19 @@ Index: gdb-7.5.50.20130215/gdb/symfile.c
/* Functions this file defines. */ /* Functions this file defines. */
Index: gdb-7.5.50.20130215/gdb/dwarf2read.c Index: gdb-7.6.50.20130731-cvs/gdb/dwarf2read.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/dwarf2read.c 2013-02-15 22:31:37.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/dwarf2read.c 2013-08-02 16:12:54.979085954 +0200
+++ gdb-7.5.50.20130215/gdb/dwarf2read.c 2013-02-15 22:34:34.479181584 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/dwarf2read.c 2013-08-02 16:20:37.190709689 +0200
@@ -68,6 +68,7 @@ @@ -69,6 +69,7 @@
#include "gdb_bfd.h"
#include "f-lang.h" #include "f-lang.h"
#include "source.h" #include "source.h"
#include "filestuff.h"
+#include "top.h" +#include "top.h"
#include <fcntl.h> #include <fcntl.h>
#include "gdb_string.h" #include "gdb_string.h"
@@ -1793,8 +1794,9 @@ dwarf2_has_info (struct objfile *objfile @@ -1834,8 +1835,9 @@ dwarf2_has_info (struct objfile *objfile
(void *) names); (void *) names);
dwarf2_per_objfile->objfile = objfile; dwarf2_per_objfile->objfile = objfile;
} }
@ -84,11 +84,11 @@ Index: gdb-7.5.50.20130215/gdb/dwarf2read.c
} }
/* When loading sections, we look either for uncompressed section or for /* When loading sections, we look either for uncompressed section or for
Index: gdb-7.5.50.20130215/gdb/top.h Index: gdb-7.6.50.20130731-cvs/gdb/top.h
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/top.h 2013-01-07 17:40:36.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/top.h 2013-08-02 16:12:54.980085956 +0200
+++ gdb-7.5.50.20130215/gdb/top.h 2013-02-15 22:34:22.389165459 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/top.h 2013-08-02 16:20:21.169687893 +0200
@@ -58,6 +58,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. */
extern int readnow_symbol_files; extern int readnow_symbol_files;

View File

@ -6,96 +6,30 @@
* gdb.gdb/xfullpath.exp: Ditto. * gdb.gdb/xfullpath.exp: Ditto.
* gdb.gdb/observer.exp: Ditto. * gdb.gdb/observer.exp: Ditto.
Index: gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/complaints.exp Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/selftest-support.exp
=================================================================== ===================================================================
--- gdb-6.8.50.20090226.orig/gdb/testsuite/gdb.gdb/complaints.exp 2009-01-03 06:58:04.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/lib/selftest-support.exp 2013-08-02 16:11:29.195971922 +0200
+++ gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/complaints.exp 2009-02-26 22:10:48.000000000 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/selftest-support.exp 2013-08-02 16:12:20.404040378 +0200
@@ -302,13 +302,13 @@ proc find_gdb { arg } { @@ -130,18 +130,18 @@ proc do_self_tests {function body} {
set GDB_FULLPATH [find_gdb $GDB] 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 x$tool
+#remote_file host delete x$tool + #remote_file host delete x$tool
gdb_start gdb_start
- set file [remote_download host $GDB_FULLPATH x$tool]
+ #set file [remote_download host $GDB_FULLPATH x$tool]
-set file [remote_download host $GDB_FULLPATH x$tool] - set result [selftest_setup $file $function]
+#set file [remote_download host $GDB_FULLPATH x$tool] + set result [selftest_setup $GDB_FULLPATH $function]
if {$result == 0} then {
set result [uplevel $body]
}
-set setup_result [setup_test $file ] gdb_exit
+set setup_result [setup_test $GDB_FULLPATH ] - catch "remote_file host delete $file"
if {$setup_result <0} then { + #catch "remote_file host delete $file"
return -1
}
@@ -319,4 +319,4 @@ test_short_complaints
test_empty_complaints
gdb_exit; if {$result < 0} then {
-catch "remote_file host delete $file"; warning "Couldn't test self"
+#catch "remote_file host delete $file";
Index: gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/observer.exp
===================================================================
--- gdb-6.8.50.20090226.orig/gdb/testsuite/gdb.gdb/observer.exp 2009-02-17 20:52:27.000000000 +0100
+++ gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/observer.exp 2009-02-26 22:11:40.000000000 +0100
@@ -258,13 +258,13 @@ proc find_gdb { arg } {
set GDB_FULLPATH [find_gdb $GDB]
# Remove any old copy lying around.
-remote_file host delete x$tool
+#remote_file host delete x$tool
gdb_start
-set file [remote_download host $GDB_FULLPATH x$tool]
-set result [test_observer $file];
+#set file [remote_download host $GDB_FULLPATH x$tool]
+set result [test_observer $GDB_FULLPATH];
gdb_exit;
-catch "remote_file host delete $file";
+#catch "remote_file host delete $file";
if {$result <0} then {
warning "Couldn't test self"
Index: gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/selftest.exp
===================================================================
--- gdb-6.8.50.20090226.orig/gdb/testsuite/gdb.gdb/selftest.exp 2009-02-26 22:09:59.000000000 +0100
+++ gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/selftest.exp 2009-02-26 22:10:48.000000000 +0100
@@ -551,13 +551,13 @@ proc find_gdb { arg } {
set GDB_FULLPATH [find_gdb $GDB]
# Remove any old copy lying around.
-remote_file host delete x$tool
+#remote_file host delete x$tool
gdb_start
-set file [remote_download host $GDB_FULLPATH x$tool]
-set result [test_with_self $file];
+#set file [remote_download host $GDB_FULLPATH x$tool]
+set result [test_with_self $GDB_FULLPATH];
gdb_exit;
-catch "remote_file host delete $file";
+#catch "remote_file host delete $file";
if {$result <0} then {
warning "Couldn't test self"
Index: gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/xfullpath.exp
===================================================================
--- gdb-6.8.50.20090226.orig/gdb/testsuite/gdb.gdb/xfullpath.exp 2009-01-03 06:58:04.000000000 +0100
+++ gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/xfullpath.exp 2009-02-26 22:10:48.000000000 +0100
@@ -179,13 +179,13 @@ proc find_gdb { arg } {
set GDB_FULLPATH [find_gdb $GDB]
# Remove any old copy lying around.
-remote_file host delete x$tool
+#remote_file host delete x$tool
gdb_start
-set file [remote_download host $GDB_FULLPATH x$tool]
-set result [test_with_self $file];
+#set file [remote_download host $GDB_FULLPATH x$tool]
+set result [test_with_self $GDB_FULLPATH];
gdb_exit;
-catch "remote_file host delete $file";
+#catch "remote_file host delete $file";
if {$result <0} then {
warning "Couldn't test self"

View File

@ -32,21 +32,23 @@ glibc-debuginfo-2.7-2.x86_64: /usr/lib/debug/lib64/libc.so.6.debug:
<81a2> DW_AT_name : (indirect string, offset: 0x280e): __errno_location <81a2> DW_AT_name : (indirect string, offset: 0x280e): __errno_location
<81a8> DW_AT_MIPS_linkage_name: (indirect string, offset: 0x2808): *__GI___errno_location <81a8> DW_AT_MIPS_linkage_name: (indirect string, offset: 0x2808): *__GI___errno_location
--- a/gdb/printcmd.c Index: gdb-7.6.50.20130731-cvs/gdb/printcmd.c
+++ b/gdb/printcmd.c ===================================================================
@@ -967,6 +967,8 @@ print_command_1 (char *exp, int inspect, int voidprint) --- gdb-7.6.50.20130731-cvs.orig/gdb/printcmd.c 2013-08-02 16:21:13.665758324 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/printcmd.c 2013-08-02 16:22:24.367853322 +0200
@@ -982,6 +982,8 @@ print_command_1 (const char *exp, int vo
if (exp && *exp) if (exp && *exp)
{ {
+ if (strcmp (exp, "errno") == 0) + if (strcmp (exp, "errno") == 0)
+ exp = "*((int *(*) (void)) __errno_location) ()"; + exp = "*((int *(*) (void)) __errno_location) ()";
expr = parse_expression (exp); expr = parse_expression (exp);
old_chain = make_cleanup (free_current_contents, &expr); make_cleanup (free_current_contents, &expr);
cleanup = 1; val = evaluate_expression (expr);
Index: gdb-7.2/gdb/testsuite/gdb.dwarf2/dw2-errno.c Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.dwarf2/dw2-errno.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.2/gdb/testsuite/gdb.dwarf2/dw2-errno.c 2011-03-29 10:55:35.000000000 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.dwarf2/dw2-errno.c 2013-08-02 16:21:13.665758324 +0200
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -76,10 +78,10 @@ Index: gdb-7.2/gdb/testsuite/gdb.dwarf2/dw2-errno.c
+ +
+ return 0; /* breakpoint */ + return 0; /* breakpoint */
+} +}
Index: gdb-7.2/gdb/testsuite/gdb.dwarf2/dw2-errno.exp Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.dwarf2/dw2-errno.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.2/gdb/testsuite/gdb.dwarf2/dw2-errno.exp 2011-03-29 10:55:35.000000000 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.dwarf2/dw2-errno.exp 2013-08-02 16:21:13.665758324 +0200
@@ -0,0 +1,60 @@ @@ -0,0 +1,60 @@
+# Copyright 2007 Free Software Foundation, Inc. +# Copyright 2007 Free Software Foundation, Inc.
+ +

View File

@ -1,11 +1,11 @@
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=218379 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=218379
Index: gdb-7.5.50.20130118/gdb/symtab.c Index: gdb-7.6.50.20130731-cvs/gdb/symtab.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/symtab.c 2013-01-18 23:53:22.009797788 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/symtab.c 2013-08-02 17:06:19.854663801 +0200
+++ gdb-7.5.50.20130118/gdb/symtab.c 2013-01-18 23:53:51.044846777 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/symtab.c 2013-08-02 17:07:04.317721471 +0200
@@ -2356,6 +2356,13 @@ find_pc_sect_line (CORE_ADDR pc, struct @@ -2327,6 +2327,13 @@ find_pc_sect_line (CORE_ADDR pc, struct
SYMBOL_LINKAGE_NAME (msymbol)); */ SYMBOL_LINKAGE_NAME (msymbol)); */
; ;
/* fall through */ /* fall through */
@ -14,7 +14,7 @@ Index: gdb-7.5.50.20130118/gdb/symtab.c
+ Avoid `find_pc_sect_line'<->`find_pc_line' infinite loop. + Avoid `find_pc_sect_line'<->`find_pc_line' infinite loop.
+ Red Hat Bug 218379. */ + Red Hat Bug 218379. */
+ else if (SYMBOL_VALUE (mfunsym) == pc) + else if (SYMBOL_VALUE (mfunsym) == pc)
+ warning ("In stub for %s (0x%s); interlocked, please submit the binary to http://bugzilla.redhat.com", SYMBOL_LINKAGE_NAME (msymbol), paddress (target_gdbarch (), pc)); + warning ("In stub for %s (0x%s); interlocked, please submit the binary to http://bugzilla.redhat.com", SYMBOL_LINKAGE_NAME (msymbol.minsym), paddress (target_gdbarch (), pc));
+ /* fall through */ + /* fall through */
else else
return find_pc_line (SYMBOL_VALUE_ADDRESS (mfunsym), 0); return find_pc_line (SYMBOL_VALUE_ADDRESS (mfunsym), 0);

View File

@ -58,10 +58,10 @@ 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.5.91.20130323/gdb/exceptions.h Index: gdb-7.6.50.20130731-cvs/gdb/exceptions.h
=================================================================== ===================================================================
--- gdb-7.5.91.20130323.orig/gdb/exceptions.h 2013-03-22 21:41:45.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/exceptions.h 2013-08-02 16:29:44.770440262 +0200
+++ gdb-7.5.91.20130323/gdb/exceptions.h 2013-03-23 19:49:05.738459185 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/exceptions.h 2013-08-02 16:30:06.197468727 +0200
@@ -90,6 +90,9 @@ enum errors { @@ -90,6 +90,9 @@ enum errors {
aborted as the inferior state is no longer valid. */ aborted as the inferior state is no longer valid. */
TARGET_CLOSE_ERROR, TARGET_CLOSE_ERROR,
@ -72,10 +72,10 @@ Index: gdb-7.5.91.20130323/gdb/exceptions.h
/* Add more errors here. */ /* Add more errors here. */
NR_ERRORS NR_ERRORS
}; };
Index: gdb-7.5.91.20130323/gdb/exec.c Index: gdb-7.6.50.20130731-cvs/gdb/exec.c
=================================================================== ===================================================================
--- gdb-7.5.91.20130323.orig/gdb/exec.c 2013-01-31 19:37:37.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/exec.c 2013-08-02 16:29:44.771440264 +0200
+++ gdb-7.5.91.20130323/gdb/exec.c 2013-03-23 19:48:53.284575912 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/exec.c 2013-08-02 16:31:30.100618657 +0200
@@ -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.5.91.20130323/gdb/exec.c
#include <fcntl.h> #include <fcntl.h>
#include "readline/readline.h" #include "readline/readline.h"
@@ -240,12 +241,27 @@ exec_file_attach (char *filename, int fr @@ -217,12 +218,27 @@ exec_file_attach (char *filename, int fr
if (!bfd_check_format_matches (exec_bfd, bfd_object, &matching)) if (!bfd_check_format_matches (exec_bfd, bfd_object, &matching))
{ {
@ -114,12 +114,12 @@ Index: gdb-7.5.91.20130323/gdb/exec.c
+ gdb_bfd_errmsg (bfd_get_error (), matching)); + gdb_bfd_errmsg (bfd_get_error (), matching));
} }
/* FIXME - This should only be run for RS6000, but the ifdef is a poor if (build_section_table (exec_bfd, &sections, &sections_end))
Index: gdb-7.5.91.20130323/gdb/main.c Index: gdb-7.6.50.20130731-cvs/gdb/main.c
=================================================================== ===================================================================
--- gdb-7.5.91.20130323.orig/gdb/main.c 2013-03-23 19:48:18.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/main.c 2013-08-02 16:29:44.772440265 +0200
+++ gdb-7.5.91.20130323/gdb/main.c 2013-03-23 19:48:53.285575901 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/main.c 2013-08-02 16:30:06.199468730 +0200
@@ -296,6 +296,36 @@ typedef struct cmdarg { @@ -300,6 +300,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.5.91.20130323/gdb/main.c
static int static int
captured_main (void *data) captured_main (void *data)
{ {
@@ -796,6 +826,8 @@ captured_main (void *data) @@ -810,6 +840,8 @@ captured_main (void *data)
{ {
symarg = argv[optind]; symarg = argv[optind];
execarg = argv[optind]; execarg = argv[optind];
@ -165,7 +165,7 @@ Index: gdb-7.5.91.20130323/gdb/main.c
optind++; optind++;
} }
@@ -951,11 +983,25 @@ captured_main (void *data) @@ -975,11 +1007,25 @@ captured_main (void *data)
&& symarg != NULL && symarg != NULL
&& strcmp (execarg, symarg) == 0) && strcmp (execarg, symarg) == 0)
{ {

View File

@ -1,16 +1,16 @@
Index: gdb-7.6/gdb/event-top.c Index: gdb-7.6.50.20130731-cvs/gdb/event-top.c
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/event-top.c 2013-01-31 19:37:37.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/event-top.c 2013-08-02 16:25:24.968094398 +0200
+++ gdb-7.6/gdb/event-top.c 2013-07-17 19:51:02.679357656 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/event-top.c 2013-08-02 16:25:38.638112874 +0200
@@ -36,6 +36,7 @@ @@ -37,6 +37,7 @@
#include "continuations.h"
#include "gdbcmd.h" /* for dont_repeat() */ #include "gdbcmd.h" /* for dont_repeat() */
#include "annotate.h" #include "annotate.h"
#include "maint.h"
+#include "symfile.h" +#include "symfile.h"
/* readline include files. */ /* readline include files. */
#include "readline/readline.h" #include "readline/readline.h"
@@ -170,6 +171,8 @@ rl_callback_read_char_wrapper (gdb_clien @@ -171,6 +172,8 @@ rl_callback_read_char_wrapper (gdb_clien
void void
cli_command_loop (void) cli_command_loop (void)
{ {
@ -19,7 +19,7 @@ Index: gdb-7.6/gdb/event-top.c
display_gdb_prompt (0); display_gdb_prompt (0);
/* Now it's time to start the event loop. */ /* Now it's time to start the event loop. */
@@ -237,6 +240,8 @@ display_gdb_prompt (char *new_prompt) @@ -238,6 +241,8 @@ display_gdb_prompt (char *new_prompt)
/* Reset the nesting depth used when trace-commands is set. */ /* Reset the nesting depth used when trace-commands is set. */
reset_command_nest_depth (); reset_command_nest_depth ();
@ -28,10 +28,10 @@ Index: gdb-7.6/gdb/event-top.c
/* Each interpreter has its own rules on displaying the command /* Each interpreter has its own rules on displaying the command
prompt. */ prompt. */
if (!current_interp_display_prompt_p ()) if (!current_interp_display_prompt_p ())
Index: gdb-7.6/gdb/elfread.c Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/elfread.c 2013-07-17 19:51:02.639357629 +0200 --- gdb-7.6.50.20130731-cvs.orig/gdb/elfread.c 2013-08-02 16:25:24.970094401 +0200
+++ gdb-7.6/gdb/elfread.c 2013-07-17 19:51:50.738390068 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/elfread.c 2013-08-02 16:25:27.336097557 +0200
@@ -49,6 +49,7 @@ @@ -49,6 +49,7 @@
#include "gdbcore.h" #include "gdbcore.h"
#include "gdbcmd.h" #include "gdbcmd.h"
@ -40,7 +40,7 @@ Index: gdb-7.6/gdb/elfread.c
#include <sys/stat.h> #include <sys/stat.h>
extern void _initialize_elfread (void); extern void _initialize_elfread (void);
@@ -1682,8 +1683,360 @@ build_id_to_filename (const struct elf_b @@ -1701,8 +1702,360 @@ build_id_to_filename (const struct elf_b
return retval; return retval;
} }
@ -402,7 +402,7 @@ Index: gdb-7.6/gdb/elfread.c
avoidance. */ avoidance. */
struct missing_filepair struct missing_filepair
@@ -1737,11 +2090,17 @@ missing_filepair_change (void) @@ -1756,11 +2109,17 @@ missing_filepair_change (void)
/* All their memory came just from missing_filepair_OBSTACK. */ /* All their memory came just from missing_filepair_OBSTACK. */
missing_filepair_hash = NULL; missing_filepair_hash = NULL;
} }
@ -420,7 +420,7 @@ Index: gdb-7.6/gdb/elfread.c
missing_filepair_change (); missing_filepair_change ();
} }
@@ -1808,14 +2167,34 @@ debug_print_missing (const char *binary, @@ -1827,14 +2186,34 @@ debug_print_missing (const char *binary,
*slot = missing_filepair; *slot = missing_filepair;
@ -462,11 +462,11 @@ Index: gdb-7.6/gdb/elfread.c
} }
static char * static char *
Index: gdb-7.6/gdb/symfile.h Index: gdb-7.6.50.20130731-cvs/gdb/symfile.h
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/symfile.h 2013-07-17 19:51:02.639357629 +0200 --- gdb-7.6.50.20130731-cvs.orig/gdb/symfile.h 2013-08-02 16:25:24.971094402 +0200
+++ gdb-7.6/gdb/symfile.h 2013-07-17 19:51:02.687357661 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/symfile.h 2013-08-02 16:25:27.336097557 +0200
@@ -598,6 +598,8 @@ extern struct elf_build_id *build_id_add @@ -602,6 +602,8 @@ extern struct elf_build_id *build_id_add
extern char *build_id_to_filename (const struct elf_build_id *build_id, extern char *build_id_to_filename (const struct elf_build_id *build_id,
char **link_return, int add_debug_suffix); char **link_return, int add_debug_suffix);
extern void debug_print_missing (const char *binary, const char *debug); extern void debug_print_missing (const char *binary, const char *debug);
@ -475,10 +475,10 @@ Index: gdb-7.6/gdb/symfile.h
/* From dwarf2read.c */ /* From dwarf2read.c */
Index: gdb-7.6/gdb/testsuite/lib/gdb.exp Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/gdb.exp
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/testsuite/lib/gdb.exp 2013-07-17 19:51:02.640357629 +0200 --- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/lib/gdb.exp 2013-08-02 16:25:24.972094404 +0200
+++ gdb-7.6/gdb/testsuite/lib/gdb.exp 2013-07-17 19:51:02.688357662 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/gdb.exp 2013-08-02 16:25:27.337097559 +0200
@@ -1482,7 +1482,7 @@ proc default_gdb_start { } { @@ -1482,7 +1482,7 @@ proc default_gdb_start { } {
warning "Couldn't set the width to 0." warning "Couldn't set the width to 0."
} }
@ -488,10 +488,10 @@ Index: gdb-7.6/gdb/testsuite/lib/gdb.exp
send_gdb "set build-id-verbose 0\n" send_gdb "set build-id-verbose 0\n"
gdb_expect 10 { gdb_expect 10 {
-re "$gdb_prompt $" { -re "$gdb_prompt $" {
Index: gdb-7.6/gdb/testsuite/lib/mi-support.exp Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/mi-support.exp
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/testsuite/lib/mi-support.exp 2013-07-17 19:51:02.656357640 +0200 --- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/lib/mi-support.exp 2013-08-02 16:25:24.973094405 +0200
+++ gdb-7.6/gdb/testsuite/lib/mi-support.exp 2013-07-17 19:51:02.689357663 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/mi-support.exp 2013-08-02 16:25:27.338097560 +0200
@@ -212,7 +212,7 @@ proc default_mi_gdb_start { args } { @@ -212,7 +212,7 @@ proc default_mi_gdb_start { args } {
warning "Couldn't set the width to 0." warning "Couldn't set the width to 0."
} }
@ -501,10 +501,10 @@ Index: gdb-7.6/gdb/testsuite/lib/mi-support.exp
send_gdb "190-gdb-set build-id-verbose 0\n" send_gdb "190-gdb-set build-id-verbose 0\n"
gdb_expect 10 { gdb_expect 10 {
-re ".*190-gdb-set build-id-verbose 0\r\n190\\\^done\r\n$mi_gdb_prompt$" { -re ".*190-gdb-set build-id-verbose 0\r\n190\\\^done\r\n$mi_gdb_prompt$" {
Index: gdb-7.6/gdb/tui/tui-interp.c Index: gdb-7.6.50.20130731-cvs/gdb/tui/tui-interp.c
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/tui/tui-interp.c 2013-01-01 07:41:30.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/tui/tui-interp.c 2013-08-02 16:25:24.974094406 +0200
+++ gdb-7.6/gdb/tui/tui-interp.c 2013-07-17 19:51:02.689357663 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/tui/tui-interp.c 2013-08-02 16:25:27.338097560 +0200
@@ -30,6 +30,7 @@ @@ -30,6 +30,7 @@
#include "tui/tui.h" #include "tui/tui.h"
#include "tui/tui-io.h" #include "tui/tui-io.h"
@ -513,10 +513,10 @@ Index: gdb-7.6/gdb/tui/tui-interp.c
/* Set to 1 when the TUI mode must be activated when we first start /* Set to 1 when the TUI mode must be activated when we first start
gdb. */ gdb. */
Index: gdb-7.6/gdb/aclocal.m4 Index: gdb-7.6.50.20130731-cvs/gdb/aclocal.m4
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/aclocal.m4 2013-01-17 12:06:26.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/aclocal.m4 2013-08-02 16:25:24.974094406 +0200
+++ gdb-7.6/gdb/aclocal.m4 2013-07-17 19:51:02.689357663 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/aclocal.m4 2013-08-02 16:25:27.339097561 +0200
@@ -11,6 +11,164 @@ @@ -11,6 +11,164 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@ -682,10 +682,10 @@ Index: gdb-7.6/gdb/aclocal.m4
# AM_CONDITIONAL -*- Autoconf -*- # AM_CONDITIONAL -*- Autoconf -*-
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
Index: gdb-7.6/gdb/config.in Index: gdb-7.6.50.20130731-cvs/gdb/config.in
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/config.in 2012-12-09 19:39:58.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/config.in 2013-08-02 16:25:24.975094407 +0200
+++ gdb-7.6/gdb/config.in 2013-07-17 19:51:02.689357663 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/config.in 2013-08-02 16:25:27.339097561 +0200
@@ -33,6 +33,9 @@ @@ -33,6 +33,9 @@
/* Define to BFD's default target vector. */ /* Define to BFD's default target vector. */
#undef DEFAULT_BFD_VEC #undef DEFAULT_BFD_VEC
@ -696,7 +696,7 @@ Index: gdb-7.6/gdb/config.in
/* Define to 1 if translation of program messages to the user's native /* Define to 1 if translation of program messages to the user's native
language is requested. */ language is requested. */
#undef ENABLE_NLS #undef ENABLE_NLS
@@ -210,6 +213,9 @@ @@ -219,6 +222,9 @@
/* Define if Python 2.7 is being used. */ /* Define if Python 2.7 is being used. */
#undef HAVE_LIBPYTHON2_7 #undef HAVE_LIBPYTHON2_7
@ -706,11 +706,11 @@ Index: gdb-7.6/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
Index: gdb-7.6/gdb/configure Index: gdb-7.6.50.20130731-cvs/gdb/configure
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/configure 2013-07-17 19:51:01.665356963 +0200 --- gdb-7.6.50.20130731-cvs.orig/gdb/configure 2013-08-02 16:25:24.981094415 +0200
+++ gdb-7.6/gdb/configure 2013-07-17 19:51:02.691357664 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/configure 2013-08-02 16:25:27.343097567 +0200
@@ -686,6 +686,11 @@ PKGVERSION @@ -689,6 +689,11 @@ PKGVERSION
HAVE_NATIVE_GCORE_TARGET HAVE_NATIVE_GCORE_TARGET
TARGET_OBS TARGET_OBS
subdirs subdirs
@ -722,7 +722,7 @@ Index: gdb-7.6/gdb/configure
GDB_DATADIR GDB_DATADIR
DEBUGDIR DEBUGDIR
MAKEINFO_EXTRA_FLAGS MAKEINFO_EXTRA_FLAGS
@@ -786,6 +791,7 @@ with_gdb_datadir @@ -789,6 +794,7 @@ with_gdb_datadir
with_relocated_sources with_relocated_sources
with_auto_load_dir with_auto_load_dir
with_auto_load_safe_path with_auto_load_safe_path
@ -730,7 +730,7 @@ Index: gdb-7.6/gdb/configure
enable_targets enable_targets
enable_64_bit_bfd enable_64_bit_bfd
enable_gdbcli enable_gdbcli
@@ -834,6 +840,11 @@ CPPFLAGS @@ -839,6 +845,11 @@ CPPFLAGS
CPP CPP
MAKEINFO MAKEINFO
MAKEINFOFLAGS MAKEINFOFLAGS
@ -742,7 +742,7 @@ Index: gdb-7.6/gdb/configure
YACC YACC
YFLAGS YFLAGS
XMKMF' XMKMF'
@@ -1504,6 +1515,8 @@ Optional Packages: @@ -1509,6 +1520,8 @@ Optional Packages:
[--with-auto-load-dir] [--with-auto-load-dir]
--without-auto-load-safe-path --without-auto-load-safe-path
do not restrict auto-loaded files locations do not restrict auto-loaded files locations
@ -751,7 +751,7 @@ Index: gdb-7.6/gdb/configure
--with-libunwind-ia64 use libunwind frame unwinding for ia64 targets --with-libunwind-ia64 use libunwind frame unwinding for ia64 targets
--with-curses use the curses library instead of the termcap --with-curses use the curses library instead of the termcap
library library
@@ -1548,6 +1561,13 @@ Some influential environment variables: @@ -1556,6 +1569,13 @@ Some influential environment variables:
MAKEINFO Parent configure detects if it is of sufficient version. MAKEINFO Parent configure detects if it is of sufficient version.
MAKEINFOFLAGS MAKEINFOFLAGS
Parameters for MAKEINFO. Parameters for MAKEINFO.
@ -765,7 +765,7 @@ Index: gdb-7.6/gdb/configure
YACC The `Yet Another C Compiler' implementation to use. Defaults to YACC The `Yet Another C Compiler' implementation to use. Defaults to
the first program found out of: `bison -y', `byacc', `yacc'. the first program found out of: `bison -y', `byacc', `yacc'.
YFLAGS The list of arguments that will be passed by default to $YACC. YFLAGS The list of arguments that will be passed by default to $YACC.
@@ -5033,6 +5053,491 @@ _ACEOF @@ -5039,6 +5059,491 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_auto_load_safe_path" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_auto_load_safe_path" >&5
$as_echo "$with_auto_load_safe_path" >&6; } $as_echo "$with_auto_load_safe_path" >&6; }
@ -1257,11 +1257,11 @@ Index: gdb-7.6/gdb/configure
subdirs="$subdirs testsuite" subdirs="$subdirs testsuite"
Index: gdb-7.6/gdb/configure.ac Index: gdb-7.6.50.20130731-cvs/gdb/configure.ac
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/configure.ac 2013-07-17 19:51:01.666356964 +0200 --- gdb-7.6.50.20130731-cvs.orig/gdb/configure.ac 2013-08-02 16:25:24.983094418 +0200
+++ gdb-7.6/gdb/configure.ac 2013-07-17 19:51:02.692357665 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/configure.ac 2013-08-02 16:25:27.344097568 +0200
@@ -166,6 +166,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escap @@ -164,6 +164,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escap
[Directories safe to hold auto-loaded files.]) [Directories safe to hold auto-loaded files.])
AC_MSG_RESULT([$with_auto_load_safe_path]) AC_MSG_RESULT([$with_auto_load_safe_path])
@ -1461,11 +1461,11 @@ Index: gdb-7.6/gdb/configure.ac
AC_CONFIG_SUBDIRS(testsuite) AC_CONFIG_SUBDIRS(testsuite)
# Check whether to support alternative target configurations # Check whether to support alternative target configurations
Index: gdb-7.6/gdb/corelow.c Index: gdb-7.6.50.20130731-cvs/gdb/corelow.c
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/corelow.c 2013-07-17 19:51:02.608357607 +0200 --- gdb-7.6.50.20130731-cvs.orig/gdb/corelow.c 2013-08-02 16:25:24.984094419 +0200
+++ gdb-7.6/gdb/corelow.c 2013-07-17 19:51:02.692357665 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/corelow.c 2013-08-02 16:25:27.344097568 +0200
@@ -314,7 +314,7 @@ build_id_locate_exec (int from_tty) @@ -316,7 +316,7 @@ build_id_locate_exec (int from_tty)
symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED; symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED;
} }
else else

View File

@ -1,18 +1,18 @@
Index: gdb-7.6/gdb/corelow.c Index: gdb-7.6.50.20130731-cvs/gdb/corelow.c
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/corelow.c 2013-01-31 19:37:37.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/corelow.c 2013-08-02 17:07:17.886739513 +0200
+++ gdb-7.6/gdb/corelow.c 2013-07-17 05:28:49.277203536 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/corelow.c 2013-08-02 17:07:28.434753293 +0200
@@ -46,6 +46,9 @@ @@ -48,6 +48,9 @@
#include "progspace.h"
#include "objfiles.h"
#include "gdb_bfd.h" #include "gdb_bfd.h"
#include "completer.h"
#include "filestuff.h"
+#include "auxv.h" +#include "auxv.h"
+#include "elf/common.h" +#include "elf/common.h"
+#include "gdbcmd.h" +#include "gdbcmd.h"
#ifndef O_LARGEFILE #ifndef O_LARGEFILE
#define O_LARGEFILE 0 #define O_LARGEFILE 0
@@ -271,6 +274,53 @@ add_to_thread_list (bfd *abfd, asection @@ -273,6 +276,53 @@ add_to_thread_list (bfd *abfd, asection
inferior_ptid = ptid; /* Yes, make it current. */ inferior_ptid = ptid; /* Yes, make it current. */
} }
@ -66,7 +66,7 @@ Index: gdb-7.6/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
@@ -409,6 +459,14 @@ core_open (char *filename, int from_tty) @@ -411,6 +461,14 @@ core_open (char *filename, int from_tty)
switch_to_thread (thread->ptid); switch_to_thread (thread->ptid);
} }
@ -81,10 +81,10 @@ Index: gdb-7.6/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
@@ -978,4 +1036,11 @@ _initialize_corelow (void) @@ -974,4 +1032,11 @@ _initialize_corelow (void)
init_core_ops (); init_core_ops ();
add_target (&core_ops); add_target_with_completer (&core_ops, filename_completer);
+ +
+ add_setshow_boolean_cmd ("build-id-core-loads", class_files, + add_setshow_boolean_cmd ("build-id-core-loads", class_files,
+ &build_id_core_loads, _("\ + &build_id_core_loads, _("\
@ -93,11 +93,11 @@ Index: gdb-7.6/gdb/corelow.c
+ NULL, NULL, NULL, + NULL, NULL, NULL,
+ &setlist, &showlist); + &setlist, &showlist);
} }
Index: gdb-7.6/gdb/doc/gdb.texinfo Index: gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/doc/gdb.texinfo 2013-07-17 05:28:48.882203384 +0200 --- gdb-7.6.50.20130731-cvs.orig/gdb/doc/gdb.texinfo 2013-08-02 17:07:17.886739513 +0200
+++ gdb-7.6/gdb/doc/gdb.texinfo 2013-07-17 05:28:49.286203539 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo 2013-08-02 17:07:28.443753304 +0200
@@ -16831,6 +16831,27 @@ information files. @@ -17119,6 +17119,27 @@ information files.
@end table @end table
@ -125,11 +125,11 @@ Index: gdb-7.6/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/gdb/solib-svr4.c Index: gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/solib-svr4.c 2013-01-31 14:52:52.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/solib-svr4.c 2013-08-02 17:07:17.886739513 +0200
+++ gdb-7.6/gdb/solib-svr4.c 2013-07-17 05:28:49.287203539 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c 2013-08-02 17:07:28.444753305 +0200
@@ -1224,9 +1224,52 @@ svr4_read_so_list (CORE_ADDR lm, struct @@ -1365,9 +1365,52 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
continue; continue;
} }
@ -185,10 +185,10 @@ Index: gdb-7.6/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/gdb/elfread.c Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/elfread.c 2013-03-18 10:20:02.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/elfread.c 2013-08-02 17:07:17.886739513 +0200
+++ gdb-7.6/gdb/elfread.c 2013-07-17 05:31:21.242256141 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/elfread.c 2013-08-02 17:09:06.460881503 +0200
@@ -45,6 +45,11 @@ @@ -45,6 +45,11 @@
#include "regcache.h" #include "regcache.h"
#include "bcache.h" #include "bcache.h"
@ -201,7 +201,7 @@ Index: gdb-7.6/gdb/elfread.c
extern void _initialize_elfread (void); extern void _initialize_elfread (void);
@@ -1068,10 +1073,59 @@ elf_gnu_ifunc_resolver_return_stop (stru @@ -1087,10 +1092,59 @@ elf_gnu_ifunc_resolver_return_stop (stru
update_breakpoint_locations (b, sals, sals_end); update_breakpoint_locations (b, sals, sals_end);
} }
@ -233,7 +233,7 @@ Index: gdb-7.6/gdb/elfread.c
+ Elf_External_Note *xnp = (Elf_External_Note *) p; + Elf_External_Note *xnp = (Elf_External_Note *) p;
+ size_t namesz = H_GET_32 (templ, xnp->namesz); + size_t namesz = H_GET_32 (templ, xnp->namesz);
+ size_t descsz = H_GET_32 (templ, xnp->descsz); + size_t descsz = H_GET_32 (templ, xnp->descsz);
+ bfd_byte *descdata = xnp->name + BFD_ALIGN (namesz, 4); + bfd_byte *descdata = (gdb_byte *) xnp->name + BFD_ALIGN (namesz, 4);
+ +
+ if (H_GET_32 (templ, xnp->type) == NT_GNU_BUILD_ID + if (H_GET_32 (templ, xnp->type) == NT_GNU_BUILD_ID
+ && namesz == sizeof "GNU" + && namesz == sizeof "GNU"
@ -263,7 +263,7 @@ Index: gdb-7.6/gdb/elfread.c
{ {
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
@@ -1081,6 +1135,348 @@ build_id_bfd_get (bfd *abfd) @@ -1100,6 +1154,348 @@ build_id_bfd_get (bfd *abfd)
return elf_tdata (abfd)->build_id; return elf_tdata (abfd)->build_id;
} }
@ -612,7 +612,7 @@ Index: gdb-7.6/gdb/elfread.c
/* Return if FILENAME has NT_GNU_BUILD_ID matching the CHECK value. */ /* Return if FILENAME has NT_GNU_BUILD_ID matching the CHECK value. */
static int static int
@@ -1095,7 +1491,7 @@ build_id_verify (const char *filename, c @@ -1114,7 +1510,7 @@ build_id_verify (const char *filename, c
if (abfd == NULL) if (abfd == NULL)
return 0; return 0;
@ -621,7 +621,7 @@ Index: gdb-7.6/gdb/elfread.c
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"), filename);
@@ -1112,16 +1508,53 @@ build_id_verify (const char *filename, c @@ -1131,16 +1527,53 @@ build_id_verify (const char *filename, c
} }
static char * static char *
@ -678,7 +678,7 @@ Index: gdb-7.6/gdb/elfread.c
/* 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. */
@@ -1134,7 +1567,10 @@ build_id_to_debug_filename (const struct @@ -1153,7 +1586,10 @@ build_id_to_debug_filename (const struct
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->data;
size_t size = build_id->size; size_t size = build_id->size;
@ -690,7 +690,7 @@ Index: gdb-7.6/gdb/elfread.c
memcpy (link, debugdir, debugdir_len); memcpy (link, debugdir, debugdir_len);
s = &link[debugdir_len]; s = &link[debugdir_len];
@@ -1148,37 +1584,256 @@ build_id_to_debug_filename (const struct @@ -1167,37 +1603,256 @@ build_id_to_debug_filename (const struct
*s++ = '/'; *s++ = '/';
while (size-- > 0) while (size-- > 0)
s += sprintf (s, "%02x", (unsigned) *data++); s += sprintf (s, "%02x", (unsigned) *data++);
@ -958,7 +958,7 @@ Index: gdb-7.6/gdb/elfread.c
/* Prevent looping on a stripped .debug file. */ /* Prevent looping on a stripped .debug file. */
if (build_id_name != NULL if (build_id_name != NULL
&& filename_cmp (build_id_name, objfile->name) == 0) && filename_cmp (build_id_name, objfile->name) == 0)
@@ -1188,7 +1843,7 @@ find_separate_debug_file_by_buildid (str @@ -1207,7 +1862,7 @@ find_separate_debug_file_by_buildid (str
xfree (build_id_name); xfree (build_id_name);
} }
else if (build_id_name != NULL) else if (build_id_name != NULL)
@ -967,7 +967,7 @@ Index: gdb-7.6/gdb/elfread.c
} }
return NULL; return NULL;
} }
@@ -1426,9 +2081,10 @@ elf_symfile_read (struct objfile *objfil @@ -1445,9 +2100,10 @@ elf_symfile_read (struct objfile *objfil
&& objfile->separate_debug_objfile == NULL && objfile->separate_debug_objfile == NULL
&& objfile->separate_debug_objfile_backlink == NULL) && objfile->separate_debug_objfile_backlink == NULL)
{ {
@ -980,7 +980,7 @@ Index: gdb-7.6/gdb/elfread.c
if (debugfile == NULL) if (debugfile == NULL)
debugfile = find_separate_debug_file_by_debuglink (objfile); debugfile = find_separate_debug_file_by_debuglink (objfile);
@@ -1442,6 +2098,12 @@ elf_symfile_read (struct objfile *objfil @@ -1461,6 +2117,12 @@ elf_symfile_read (struct objfile *objfil
symbol_file_add_separate (abfd, symfile_flags, objfile); symbol_file_add_separate (abfd, symfile_flags, objfile);
do_cleanups (cleanup); do_cleanups (cleanup);
} }
@ -993,7 +993,7 @@ Index: gdb-7.6/gdb/elfread.c
} }
} }
@@ -1761,4 +2423,16 @@ _initialize_elfread (void) @@ -1790,4 +2452,16 @@ _initialize_elfread (void)
elf_objfile_gnu_ifunc_cache_data = register_objfile_data (); elf_objfile_gnu_ifunc_cache_data = register_objfile_data ();
gnu_ifunc_fns_p = &elf_gnu_ifunc_fns; gnu_ifunc_fns_p = &elf_gnu_ifunc_fns;
@ -1010,11 +1010,11 @@ Index: gdb-7.6/gdb/elfread.c
+ +
+ observer_attach_executable_changed (debug_print_executable_changed); + observer_attach_executable_changed (debug_print_executable_changed);
} }
Index: gdb-7.6/gdb/symfile.h Index: gdb-7.6.50.20130731-cvs/gdb/symfile.h
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/symfile.h 2013-02-03 17:20:18.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/symfile.h 2013-08-02 17:07:17.886739513 +0200
+++ gdb-7.6/gdb/symfile.h 2013-07-17 05:28:49.291203541 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/symfile.h 2013-08-02 17:07:28.446753308 +0200
@@ -593,6 +593,12 @@ void free_symfile_segment_data (struct s @@ -597,6 +597,12 @@ void free_symfile_segment_data (struct s
extern struct cleanup *increment_reading_symtab (void); extern struct cleanup *increment_reading_symtab (void);
@ -1027,10 +1027,10 @@ Index: gdb-7.6/gdb/symfile.h
/* From dwarf2read.c */ /* From dwarf2read.c */
/* Names for a dwarf2 debugging section. The field NORMAL is the normal /* Names for a dwarf2 debugging section. The field NORMAL is the normal
Index: gdb-7.6/gdb/testsuite/lib/gdb.exp Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/gdb.exp
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/testsuite/lib/gdb.exp 2013-07-17 05:28:48.334203172 +0200 --- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/lib/gdb.exp 2013-08-02 17:07:17.886739513 +0200
+++ gdb-7.6/gdb/testsuite/lib/gdb.exp 2013-07-17 05:28:49.292203541 +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 { } { @@ -1482,6 +1482,16 @@ proc default_gdb_start { } {
warning "Couldn't set the width to 0." warning "Couldn't set the width to 0."
} }
@ -1045,13 +1045,13 @@ Index: gdb-7.6/gdb/testsuite/lib/gdb.exp
+ warning "Could not disable the missing debug infos warnings.." + warning "Could not disable the missing debug infos warnings.."
+ } + }
+ } + }
return 0; return 0
} }
Index: gdb-7.6/gdb/testsuite/lib/mi-support.exp Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/mi-support.exp
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/testsuite/lib/mi-support.exp 2013-01-22 00:57:59.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/lib/mi-support.exp 2013-08-02 17:07:17.886739513 +0200
+++ gdb-7.6/gdb/testsuite/lib/mi-support.exp 2013-07-17 05:28:49.292203541 +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 } { @@ -212,6 +212,16 @@ proc default_mi_gdb_start { args } {
warning "Couldn't set the width to 0." warning "Couldn't set the width to 0."
} }
@ -1069,11 +1069,11 @@ Index: gdb-7.6/gdb/testsuite/lib/mi-support.exp
# If allowing the inferior to have its own PTY then assign the inferior # If allowing the inferior to have its own PTY then assign the inferior
# its own terminal device here. # its own terminal device here.
if { $separate_inferior_pty } { if { $separate_inferior_pty } {
Index: gdb-7.6/gdb/objfiles.h Index: gdb-7.6.50.20130731-cvs/gdb/objfiles.h
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/objfiles.h 2013-02-28 20:00:31.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/objfiles.h 2013-08-02 17:07:17.886739513 +0200
+++ gdb-7.6/gdb/objfiles.h 2013-07-17 05:28:49.293203542 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/objfiles.h 2013-08-02 17:07:28.447753310 +0200
@@ -432,6 +432,10 @@ struct objfile @@ -429,6 +429,10 @@ struct objfile
#define OBJF_MAINLINE (1 << 5) #define OBJF_MAINLINE (1 << 5)
@ -1084,11 +1084,11 @@ Index: gdb-7.6/gdb/objfiles.h
/* The object file that contains the runtime common minimal symbols /* The object file that contains the runtime common minimal symbols
for SunOS4. Note that this objfile has no associated BFD. */ for SunOS4. Note that this objfile has no associated BFD. */
Index: gdb-7.6/gdb/testsuite/gdb.base/corefile.exp Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/corefile.exp
=================================================================== ===================================================================
--- gdb-7.6.orig/gdb/testsuite/gdb.base/corefile.exp 2013-01-01 07:33:25.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/corefile.exp 2013-08-02 17:07:17.886739513 +0200
+++ gdb-7.6/gdb/testsuite/gdb.base/corefile.exp 2013-07-17 05:28:49.293203542 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/corefile.exp 2013-08-02 17:07:28.447753310 +0200
@@ -256,3 +256,33 @@ if ![is_remote target] { @@ -255,3 +255,33 @@ if ![is_remote target] {
gdb_exit gdb_exit
} }

View File

@ -1,23 +1,23 @@
Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.base/annota1.exp Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota1.exp
=================================================================== ===================================================================
--- gdb-7.4.50.20120602.orig/gdb/testsuite/gdb.base/annota1.exp 2012-03-16 17:47:33.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/annota1.exp 2013-08-02 16:23:26.559936258 +0200
+++ gdb-7.4.50.20120602/gdb/testsuite/gdb.base/annota1.exp 2012-06-02 18:27:46.623210711 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota1.exp 2013-08-02 16:23:56.590976418 +0200
@@ -45,6 +45,8 @@ gdb_start @@ -41,6 +41,8 @@ if { [gdb_compile "${srcdir}/${subdir}/
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile} clean_restart ${binfile}
+gdb_test "set breakpoint pending off" "" "Avoid lockup on nonexisting functions" +gdb_test "set breakpoint pending off" "" "Avoid lockup on nonexisting functions"
+ +
# The commands we test here produce many lines of output; disable "press # The commands we test here produce many lines of output; disable "press
# <return> to continue" prompts. # <return> to continue" prompts.
gdb_test_no_output "set height 0" gdb_test_no_output "set height 0"
Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.base/annota3.exp Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota3.exp
=================================================================== ===================================================================
--- gdb-7.4.50.20120602.orig/gdb/testsuite/gdb.base/annota3.exp 2012-02-28 23:40:48.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/annota3.exp 2013-08-02 16:23:26.560936259 +0200
+++ gdb-7.4.50.20120602/gdb/testsuite/gdb.base/annota3.exp 2012-06-02 18:28:00.375206457 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota3.exp 2013-08-02 16:24:11.654996267 +0200
@@ -45,6 +45,8 @@ gdb_start @@ -40,6 +40,8 @@ if { [gdb_compile "${srcdir}/${subdir}/
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile} clean_restart ${binfile}
+gdb_test "set breakpoint pending off" "" "Avoid lockup on nonexisting functions" +gdb_test "set breakpoint pending off" "" "Avoid lockup on nonexisting functions"
+ +

View File

@ -20,10 +20,10 @@ random FAIL: gdb.base/auxv.exp: matching auxv data from live and gcore
gdb-6.8.50.20090209/gdb/testsuite/gdb.base/annota1.exp: gdb-6.8.50.20090209/gdb/testsuite/gdb.base/annota1.exp:
frames-invalid can happen asynchronously. frames-invalid can happen asynchronously.
Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.c Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/fileio.c
=================================================================== ===================================================================
--- gdb-7.4.50.20120103.orig/gdb/testsuite/gdb.base/fileio.c 2009-10-01 17:39:13.000000000 +0200 --- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/fileio.c 2013-08-02 16:25:49.466127074 +0200
+++ gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.c 2012-01-03 15:21:28.122729249 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/fileio.c 2013-08-02 16:26:11.724156750 +0200
@@ -58,6 +58,8 @@ system (const char * string); @@ -58,6 +58,8 @@ system (const char * string);
1) Invalid string/command. - returns 127. */ 1) Invalid string/command. - returns 127. */
static const char *strerrno (int err); static const char *strerrno (int err);
@ -71,12 +71,12 @@ Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.c
/* Don't change the order of the calls. They partly depend on each other */ /* Don't change the order of the calls. They partly depend on each other */
test_open (); test_open ();
test_write (); test_write ();
Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.exp Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/fileio.exp
=================================================================== ===================================================================
--- gdb-7.4.50.20120103.orig/gdb/testsuite/gdb.base/fileio.exp 2011-12-26 12:24:55.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/fileio.exp 2013-08-02 16:25:49.467127075 +0200
+++ gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.exp 2012-01-03 15:22:02.716601956 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/fileio.exp 2013-08-02 16:27:10.142234618 +0200
@@ -42,8 +42,8 @@ if [get_compiler_info ${binfile}] { @@ -35,8 +35,8 @@ if [get_compiler_info] {
return -1; return -1
} }
-remote_exec build {sh -xc test\ -r\ dir2.fileio.test\ &&\ chmod\ -f\ +w\ dir2.fileio.test} -remote_exec build {sh -xc test\ -r\ dir2.fileio.test\ &&\ chmod\ -f\ +w\ dir2.fileio.test}
@ -86,7 +86,7 @@ Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.exp
set oldtimeout $timeout set oldtimeout $timeout
set timeout [expr "$timeout + 60"] set timeout [expr "$timeout + 60"]
@@ -85,7 +85,7 @@ gdb_test continue \ @@ -78,7 +78,7 @@ gdb_test continue \
gdb_test "continue" ".*" "" gdb_test "continue" ".*" ""
@ -95,7 +95,7 @@ Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.exp
gdb_test continue \ gdb_test continue \
"Continuing\\..*open 5:.*EACCES$stop_msg" \ "Continuing\\..*open 5:.*EACCES$stop_msg" \
@@ -251,8 +251,8 @@ gdb_exit @@ -244,8 +244,8 @@ gdb_exit
# Wait till GDB really exits. # Wait till GDB really exits.
sleep 1 sleep 1

View File

@ -5,11 +5,11 @@ Some of the threads may not be properly PTRACE_DETACHed which hurts if they
should have been detached with SIGSTOP (as they are accidentally left running should have been detached with SIGSTOP (as they are accidentally left running
on the debugger termination). on the debugger termination).
Index: gdb-7.5.50.20130118/gdb/defs.h Index: gdb-7.6.50.20130731-cvs/gdb/defs.h
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/defs.h 2013-01-01 07:32:41.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/defs.h 2013-08-02 16:58:31.453016573 +0200
+++ gdb-7.5.50.20130118/gdb/defs.h 2013-01-21 16:40:29.889256633 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/defs.h 2013-08-02 16:58:41.221030412 +0200
@@ -176,6 +176,7 @@ extern int check_quit_flag (void); @@ -177,6 +177,7 @@ extern int check_quit_flag (void);
/* Set the quit flag. */ /* Set the quit flag. */
extern void set_quit_flag (void); extern void set_quit_flag (void);
@ -17,26 +17,26 @@ Index: gdb-7.5.50.20130118/gdb/defs.h
extern int immediate_quit; extern int immediate_quit;
extern void quit (void); extern void quit (void);
Index: gdb-7.5.50.20130118/gdb/top.c Index: gdb-7.6.50.20130731-cvs/gdb/top.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/top.c 2013-01-21 14:56:12.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/top.c 2013-08-02 16:58:41.222030414 +0200
+++ gdb-7.5.50.20130118/gdb/top.c 2013-01-21 14:56:16.385710056 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/top.c 2013-08-02 16:59:06.321066228 +0200
@@ -1329,7 +1329,9 @@ quit_force (char *args, int from_tty) @@ -1415,7 +1415,9 @@ quit_force (char *args, int from_tty)
qt.args = args; if (ex.reason < 0) \
qt.from_tty = from_tty; exception_print (gdb_stderr, ex)
- /* We want to handle any quit errors and exit regardless. */ - /* We want to handle any quit errors and exit regardless. */
+ /* We want to handle any quit errors and exit regardless but we should never + /* We want to handle any quit errors and exit regardless but we should never
+ get user-interrupted to properly detach the inferior. */ + get user-interrupted to properly detach the inferior. */
+ quit_flag_cleanup = 1; + quit_flag_cleanup = 1;
catch_errors (quit_target, &qt,
"Quitting: ", RETURN_MASK_ALL);
Index: gdb-7.5.50.20130118/gdb/utils.c /* Get out of tfind mode, and kill or detach all inferiors. */
DO_TRY
Index: gdb-7.6.50.20130731-cvs/gdb/utils.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/utils.c 2013-01-21 14:56:12.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/utils.c 2013-08-02 16:58:31.455016575 +0200
+++ gdb-7.5.50.20130118/gdb/utils.c 2013-01-21 16:41:02.225233493 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/utils.c 2013-08-02 16:58:41.223030415 +0200
@@ -141,6 +141,11 @@ int quit_flag; @@ -136,6 +136,11 @@ int quit_flag;
int immediate_quit; int immediate_quit;
@ -48,7 +48,7 @@ Index: gdb-7.5.50.20130118/gdb/utils.c
#ifndef HAVE_PYTHON #ifndef HAVE_PYTHON
/* Clear the quit flag. */ /* Clear the quit flag. */
@@ -164,6 +169,9 @@ set_quit_flag (void) @@ -159,6 +164,9 @@ set_quit_flag (void)
int int
check_quit_flag (void) check_quit_flag (void)
{ {
@ -58,11 +58,11 @@ Index: gdb-7.5.50.20130118/gdb/utils.c
/* This is written in a particular way to avoid races. */ /* This is written in a particular way to avoid races. */
if (quit_flag) if (quit_flag)
{ {
Index: gdb-7.5.50.20130118/gdb/python/python.c Index: gdb-7.6.50.20130731-cvs/gdb/python/python.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/python/python.c 2013-01-21 16:39:03.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/python/python.c 2013-08-02 16:58:31.456016577 +0200
+++ gdb-7.5.50.20130118/gdb/python/python.c 2013-01-21 16:39:30.698299142 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/python/python.c 2013-08-02 16:58:41.224030416 +0200
@@ -181,6 +181,9 @@ set_quit_flag (void) @@ -191,6 +191,9 @@ set_quit_flag (void)
int int
check_quit_flag (void) check_quit_flag (void)
{ {

View File

@ -1,8 +1,8 @@
Index: gdb-7.5.50.20130215/gdb/breakpoint.c Index: gdb-7.6.50.20130731-cvs/gdb/breakpoint.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/breakpoint.c 2013-02-15 22:31:37.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/breakpoint.c 2013-08-02 16:29:16.065402116 +0200
+++ gdb-7.5.50.20130215/gdb/breakpoint.c 2013-02-15 22:37:08.216381988 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/breakpoint.c 2013-08-02 16:29:17.073403456 +0200
@@ -16020,6 +16020,50 @@ initialize_breakpoint_ops (void) @@ -15963,6 +15963,50 @@ initialize_breakpoint_ops (void)
static struct cmd_list_element *enablebreaklist = NULL; static struct cmd_list_element *enablebreaklist = NULL;
void void
@ -53,23 +53,23 @@ Index: gdb-7.5.50.20130215/gdb/breakpoint.c
_initialize_breakpoint (void) _initialize_breakpoint (void)
{ {
struct cmd_list_element *c; struct cmd_list_element *c;
Index: gdb-7.5.50.20130215/gdb/breakpoint.h Index: gdb-7.6.50.20130731-cvs/gdb/breakpoint.h
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/breakpoint.h 2013-02-03 16:57:06.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/breakpoint.h 2013-08-02 16:29:17.074403457 +0200
+++ gdb-7.5.50.20130215/gdb/breakpoint.h 2013-02-15 22:37:19.025395693 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/breakpoint.h 2013-08-02 16:29:30.221420896 +0200
@@ -1556,4 +1556,7 @@ extern void handle_solib_event (void); @@ -1555,4 +1555,7 @@ extern void breakpoint_free_objfile (str
extern void breakpoint_free_objfile (struct objfile *objfile); extern char *ep_parse_optional_if_clause (char **arg);
+extern void breakpoints_relocate (struct objfile *objfile, +extern void breakpoints_relocate (struct objfile *objfile,
+ struct section_offsets *delta); + struct section_offsets *delta);
+ +
#endif /* !defined (BREAKPOINT_H) */ #endif /* !defined (BREAKPOINT_H) */
Index: gdb-7.5.50.20130215/gdb/objfiles.c Index: gdb-7.6.50.20130731-cvs/gdb/objfiles.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/objfiles.c 2013-02-03 16:57:07.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/objfiles.c 2013-08-02 16:29:16.068402120 +0200
+++ gdb-7.5.50.20130215/gdb/objfiles.c 2013-02-15 22:37:08.217381990 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/objfiles.c 2013-08-02 16:29:17.075403458 +0200
@@ -831,6 +831,11 @@ objfile_relocate1 (struct objfile *objfi @@ -851,6 +851,11 @@ objfile_relocate1 (struct objfile *objfi
objfile->sf->sym_probe_fns->sym_relocate_probe (objfile, objfile->sf->sym_probe_fns->sym_relocate_probe (objfile,
new_offsets, delta); new_offsets, delta);

File diff suppressed because it is too large Load Diff

View File

@ -37,10 +37,10 @@ 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.5.50.20130215/gdb/common/linux-ptrace.c Index: gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/common/linux-ptrace.c 2013-01-08 20:38:51.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/common/linux-ptrace.c 2013-08-02 16:33:52.767872412 +0200
+++ gdb-7.5.50.20130215/gdb/common/linux-ptrace.c 2013-02-15 22:38:05.782456279 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.c 2013-08-02 16:34:16.122910934 +0200
@@ -29,6 +29,10 @@ @@ -29,6 +29,10 @@
#include "gdb_assert.h" #include "gdb_assert.h"
#include "gdb_wait.h" #include "gdb_wait.h"
@ -61,7 +61,7 @@ Index: gdb-7.5.50.20130215/gdb/common/linux-ptrace.c
} }
#if defined __i386__ || defined __x86_64__ #if defined __i386__ || defined __x86_64__
@@ -243,3 +249,19 @@ linux_ptrace_init_warnings (void) @@ -236,3 +242,19 @@ linux_ptrace_init_warnings (void)
linux_ptrace_test_ret_to_nx (); linux_ptrace_test_ret_to_nx ();
} }
@ -81,10 +81,10 @@ Index: gdb-7.5.50.20130215/gdb/common/linux-ptrace.c
+ "(gdb) shell sudo setsebool deny_ptrace=0")); + "(gdb) shell sudo setsebool deny_ptrace=0"));
+#endif /* HAVE_LIBSELINUX */ +#endif /* HAVE_LIBSELINUX */
+} +}
Index: gdb-7.5.50.20130215/gdb/common/linux-ptrace.h Index: gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.h
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/common/linux-ptrace.h 2013-01-01 07:32:54.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/common/linux-ptrace.h 2013-08-02 16:33:52.768872414 +0200
+++ gdb-7.5.50.20130215/gdb/common/linux-ptrace.h 2013-02-15 22:38:05.782456279 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.h 2013-08-02 16:34:16.122910934 +0200
@@ -69,5 +69,6 @@ struct buffer; @@ -69,5 +69,6 @@ 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);
@ -92,13 +92,13 @@ Index: gdb-7.5.50.20130215/gdb/common/linux-ptrace.h
+extern void linux_ptrace_create_warnings (struct buffer *buffer); +extern void linux_ptrace_create_warnings (struct buffer *buffer);
#endif /* COMMON_LINUX_PTRACE_H */ #endif /* COMMON_LINUX_PTRACE_H */
Index: gdb-7.5.50.20130215/gdb/configure.ac Index: gdb-7.6.50.20130731-cvs/gdb/configure.ac
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/configure.ac 2013-02-15 22:37:57.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/configure.ac 2013-08-02 16:34:16.123910936 +0200
+++ gdb-7.5.50.20130215/gdb/configure.ac 2013-02-15 22:38:05.783456281 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/configure.ac 2013-08-02 16:34:46.519960063 +0200
@@ -2068,6 +2068,10 @@ then @@ -2071,6 +2071,10 @@ case $host_os in
[Define if you support the personality syscall.]) esac
fi AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
+dnl Check security_get_boolean_active availability. +dnl Check security_get_boolean_active availability.
+AC_CHECK_HEADERS(selinux/selinux.h) +AC_CHECK_HEADERS(selinux/selinux.h)
@ -107,11 +107,11 @@ Index: gdb-7.5.50.20130215/gdb/configure.ac
dnl Handle optional features that can be enabled. 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.5.50.20130215/gdb/gdbserver/configure.ac Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/configure.ac
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/gdbserver/configure.ac 2013-01-01 07:33:00.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/gdbserver/configure.ac 2013-08-02 16:34:16.124910938 +0200
+++ gdb-7.5.50.20130215/gdb/gdbserver/configure.ac 2013-02-15 22:38:05.783456281 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/gdbserver/configure.ac 2013-08-02 16:35:06.634991892 +0200
@@ -451,6 +451,10 @@ if $want_ipa ; then @@ -471,6 +471,10 @@ if $want_ipa ; then
fi fi
fi fi
@ -121,12 +121,12 @@ Index: gdb-7.5.50.20130215/gdb/gdbserver/configure.ac
+ +
AC_SUBST(GDBSERVER_DEPFILES) AC_SUBST(GDBSERVER_DEPFILES)
AC_SUBST(GDBSERVER_LIBS) AC_SUBST(GDBSERVER_LIBS)
AC_SUBST(USE_THREAD_DB) AC_SUBST(srv_xmlbuiltin)
Index: gdb-7.5.50.20130215/gdb/gdbserver/linux-low.c Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/linux-low.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/gdbserver/linux-low.c 2013-02-04 18:47:00.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/gdbserver/linux-low.c 2013-08-02 16:33:52.772872421 +0200
+++ gdb-7.5.50.20130215/gdb/gdbserver/linux-low.c 2013-02-15 22:39:54.256591069 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/gdbserver/linux-low.c 2013-08-02 16:34:16.126910941 +0200
@@ -602,6 +602,29 @@ add_lwp (ptid_t ptid) @@ -622,6 +622,29 @@ add_lwp (ptid_t ptid)
return lwp; return lwp;
} }
@ -156,7 +156,7 @@ Index: gdb-7.5.50.20130215/gdb/gdbserver/linux-low.c
/* Start an inferior process and returns its pid. /* 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. */
@@ -642,7 +665,7 @@ linux_create_inferior (char *program, ch @@ -662,7 +685,7 @@ linux_create_inferior (char *program, ch
if (pid == 0) if (pid == 0)
{ {
@ -165,7 +165,7 @@ Index: gdb-7.5.50.20130215/gdb/gdbserver/linux-low.c
#ifndef __ANDROID__ /* Bionic doesn't use SIGRTMIN the way glibc does. */ #ifndef __ANDROID__ /* Bionic doesn't use SIGRTMIN the way glibc does. */
signal (__SIGRTMIN + 1, SIG_DFL); signal (__SIGRTMIN + 1, SIG_DFL);
@@ -4587,7 +4610,7 @@ linux_tracefork_grandchild (void *arg) @@ -4685,7 +4708,7 @@ linux_tracefork_grandchild (void *arg)
static int static int
linux_tracefork_child (void *arg) linux_tracefork_child (void *arg)
{ {
@ -174,10 +174,10 @@ Index: gdb-7.5.50.20130215/gdb/gdbserver/linux-low.c
kill (getpid (), SIGSTOP); kill (getpid (), SIGSTOP);
#if !(defined(__UCLIBC__) && defined(HAS_NOMMU)) #if !(defined(__UCLIBC__) && defined(HAS_NOMMU))
Index: gdb-7.5.50.20130215/gdb/inf-ptrace.c Index: gdb-7.6.50.20130731-cvs/gdb/inf-ptrace.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/inf-ptrace.c 2013-01-01 07:32:45.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/inf-ptrace.c 2013-08-02 16:33:52.772872421 +0200
+++ gdb-7.5.50.20130215/gdb/inf-ptrace.c 2013-02-15 22:38:05.786456289 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/inf-ptrace.c 2013-08-02 16:34:16.126910941 +0200
@@ -104,7 +104,15 @@ static void @@ -104,7 +104,15 @@ static void
inf_ptrace_me (void) inf_ptrace_me (void)
{ {
@ -194,11 +194,11 @@ Index: gdb-7.5.50.20130215/gdb/inf-ptrace.c
} }
/* Start a new inferior Unix child process. EXEC_FILE is the file to /* Start a new inferior Unix child process. EXEC_FILE is the file to
Index: gdb-7.5.50.20130215/gdb/linux-nat.c Index: gdb-7.6.50.20130731-cvs/gdb/linux-nat.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/linux-nat.c 2013-02-15 22:34:44.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/linux-nat.c 2013-08-02 16:33:52.774872424 +0200
+++ gdb-7.5.50.20130215/gdb/linux-nat.c 2013-02-15 22:38:05.787456291 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/linux-nat.c 2013-08-02 16:34:16.128910944 +0200
@@ -1557,6 +1557,7 @@ linux_nat_create_inferior (struct target @@ -1554,6 +1554,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 +206,7 @@ Index: gdb-7.5.50.20130215/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. */
@@ -1581,7 +1582,10 @@ linux_nat_create_inferior (struct target @@ -1578,7 +1579,10 @@ linux_nat_create_inferior (struct target
/* Make sure we report all signals during startup. */ /* Make sure we report all signals during startup. */
linux_nat_pass_signals (0, NULL); linux_nat_pass_signals (0, NULL);
@ -218,7 +218,7 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c
#ifdef HAVE_PERSONALITY #ifdef HAVE_PERSONALITY
if (personality_set) if (personality_set)
@@ -1593,6 +1597,24 @@ linux_nat_create_inferior (struct target @@ -1590,6 +1594,24 @@ linux_nat_create_inferior (struct target
safe_strerror (errno)); safe_strerror (errno));
} }
#endif /* HAVE_PERSONALITY */ #endif /* HAVE_PERSONALITY */
@ -243,3 +243,192 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c
} }
static void static void
Index: gdb-7.6.50.20130731-cvs/gdb/config.in
===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/config.in 2013-08-02 16:25:27.339097561 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/config.in 2013-08-02 16:36:16.249099841 +0200
@@ -225,6 +225,9 @@
/* Define if librpm library is being used. */
#undef HAVE_LIBRPM
+/* Define to 1 if you have the `selinux' library (-lselinux). */
+#undef HAVE_LIBSELINUX
+
/* Define to 1 if you have the <libunwind-ia64.h> header file. */
#undef HAVE_LIBUNWIND_IA64_H
@@ -372,6 +375,9 @@
/* Define to 1 if you have the `sbrk' function. */
#undef HAVE_SBRK
+/* Define to 1 if you have the <selinux/selinux.h> header file. */
+#undef HAVE_SELINUX_SELINUX_H
+
/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE
Index: gdb-7.6.50.20130731-cvs/gdb/configure
===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/configure 2013-08-02 16:25:27.343097567 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/configure 2013-08-02 16:36:14.665097434 +0200
@@ -12851,6 +12851,64 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
+for ac_header in selinux/selinux.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "selinux/selinux.h" "ac_cv_header_selinux_selinux_h" "$ac_includes_default"
+if test "x$ac_cv_header_selinux_selinux_h" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SELINUX_SELINUX_H 1
+_ACEOF
+
+fi
+
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for security_get_boolean_active in -lselinux" >&5
+$as_echo_n "checking for security_get_boolean_active in -lselinux... " >&6; }
+if test "${ac_cv_lib_selinux_security_get_boolean_active+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lselinux $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char security_get_boolean_active ();
+int
+main ()
+{
+return security_get_boolean_active ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_selinux_security_get_boolean_active=yes
+else
+ ac_cv_lib_selinux_security_get_boolean_active=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_security_get_boolean_active" >&5
+$as_echo "$ac_cv_lib_selinux_security_get_boolean_active" >&6; }
+if test "x$ac_cv_lib_selinux_security_get_boolean_active" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSELINUX 1
+_ACEOF
+
+ LIBS="-lselinux $LIBS"
+
+fi
+
+
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
# except that the argument to --with-sysroot is optional.
Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/config.in
===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/gdbserver/config.in 2013-07-31 21:41:54.000000000 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/gdbserver/config.in 2013-08-02 16:36:21.719108141 +0200
@@ -76,6 +76,12 @@
/* Define to 1 if you have the `dl' library (-ldl). */
#undef HAVE_LIBDL
+/* Define to 1 if you have the `mcheck' library (-lmcheck). */
+#undef HAVE_LIBMCHECK
+
+/* Define to 1 if you have the `selinux' library (-lselinux). */
+#undef HAVE_LIBSELINUX
+
/* Define if the target supports branch tracing. */
#undef HAVE_LINUX_BTRACE
@@ -146,6 +152,9 @@
/* Define to 1 if you have the `readlink' function. */
#undef HAVE_READLINK
+/* Define to 1 if you have the <selinux/selinux.h> header file. */
+#undef HAVE_SELINUX_SELINUX_H
+
/* Define to 1 if you have the <sgtty.h> header file. */
#undef HAVE_SGTTY_H
Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/configure
===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/gdbserver/configure 2013-07-31 21:41:54.000000000 +0200
+++ gdb-7.6.50.20130731-cvs/gdb/gdbserver/configure 2013-08-02 16:36:20.237105894 +0200
@@ -6003,6 +6003,64 @@ if $want_ipa ; then
fi
fi
+for ac_header in selinux/selinux.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "selinux/selinux.h" "ac_cv_header_selinux_selinux_h" "$ac_includes_default"
+if test "x$ac_cv_header_selinux_selinux_h" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SELINUX_SELINUX_H 1
+_ACEOF
+
+fi
+
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for security_get_boolean_active in -lselinux" >&5
+$as_echo_n "checking for security_get_boolean_active in -lselinux... " >&6; }
+if test "${ac_cv_lib_selinux_security_get_boolean_active+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lselinux $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char security_get_boolean_active ();
+int
+main ()
+{
+return security_get_boolean_active ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_selinux_security_get_boolean_active=yes
+else
+ ac_cv_lib_selinux_security_get_boolean_active=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_security_get_boolean_active" >&5
+$as_echo "$ac_cv_lib_selinux_security_get_boolean_active" >&6; }
+if test "x$ac_cv_lib_selinux_security_get_boolean_active" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSELINUX 1
+_ACEOF
+
+ LIBS="-lselinux $LIBS"
+
+fi
+
+

View File

@ -1,186 +0,0 @@
Index: gdb-7.5.91.20130323/gdb/config.in
===================================================================
--- gdb-7.5.91.20130323.orig/gdb/config.in 2013-03-23 19:48:18.000000000 +0100
+++ gdb-7.5.91.20130323/gdb/config.in 2013-03-23 19:50:53.300066378 +0100
@@ -216,6 +216,9 @@
/* Define if librpm library is being used. */
#undef HAVE_LIBRPM
+/* Define to 1 if you have the `selinux' library (-lselinux). */
+#undef HAVE_LIBSELINUX
+
/* Define to 1 if you have the <libunwind-ia64.h> header file. */
#undef HAVE_LIBUNWIND_IA64_H
@@ -360,6 +363,9 @@
/* Define to 1 if you have the `sbrk' function. */
#undef HAVE_SBRK
+/* Define to 1 if you have the <selinux/selinux.h> header file. */
+#undef HAVE_SELINUX_SELINUX_H
+
/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE
Index: gdb-7.5.91.20130323/gdb/configure
===================================================================
--- gdb-7.5.91.20130323.orig/gdb/configure 2013-03-23 19:48:18.000000000 +0100
+++ gdb-7.5.91.20130323/gdb/configure 2013-03-23 19:50:53.303066376 +0100
@@ -12814,6 +12814,64 @@ $as_echo "#define HAVE_PERSONALITY 1" >>
fi
+for ac_header in selinux/selinux.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "selinux/selinux.h" "ac_cv_header_selinux_selinux_h" "$ac_includes_default"
+if test "x$ac_cv_header_selinux_selinux_h" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SELINUX_SELINUX_H 1
+_ACEOF
+
+fi
+
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for security_get_boolean_active in -lselinux" >&5
+$as_echo_n "checking for security_get_boolean_active in -lselinux... " >&6; }
+if test "${ac_cv_lib_selinux_security_get_boolean_active+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lselinux $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char security_get_boolean_active ();
+int
+main ()
+{
+return security_get_boolean_active ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_selinux_security_get_boolean_active=yes
+else
+ ac_cv_lib_selinux_security_get_boolean_active=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_security_get_boolean_active" >&5
+$as_echo "$ac_cv_lib_selinux_security_get_boolean_active" >&6; }
+if test "x$ac_cv_lib_selinux_security_get_boolean_active" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSELINUX 1
+_ACEOF
+
+ LIBS="-lselinux $LIBS"
+
+fi
+
+
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
# except that the argument to --with-sysroot is optional.
Index: gdb-7.5.91.20130323/gdb/gdbserver/config.in
===================================================================
--- gdb-7.5.91.20130323.orig/gdb/gdbserver/config.in 2013-03-11 09:35:09.000000000 +0100
+++ gdb-7.5.91.20130323/gdb/gdbserver/config.in 2013-03-23 19:51:14.323052419 +0100
@@ -73,6 +73,9 @@
/* Define to 1 if you have the `dl' library (-ldl). */
#undef HAVE_LIBDL
+/* Define to 1 if you have the `selinux' library (-lselinux). */
+#undef HAVE_LIBSELINUX
+
/* Define if the target supports branch tracing. */
#undef HAVE_LINUX_BTRACE
@@ -140,6 +143,9 @@
/* Define to 1 if you have the `readlink' function. */
#undef HAVE_READLINK
+/* Define to 1 if you have the <selinux/selinux.h> header file. */
+#undef HAVE_SELINUX_SELINUX_H
+
/* Define to 1 if you have the <sgtty.h> header file. */
#undef HAVE_SGTTY_H
Index: gdb-7.5.91.20130323/gdb/gdbserver/configure
===================================================================
--- gdb-7.5.91.20130323.orig/gdb/gdbserver/configure 2013-03-11 09:35:09.000000000 +0100
+++ gdb-7.5.91.20130323/gdb/gdbserver/configure 2013-03-23 19:50:53.305066374 +0100
@@ -5911,6 +5911,64 @@ if $want_ipa ; then
fi
fi
+for ac_header in selinux/selinux.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "selinux/selinux.h" "ac_cv_header_selinux_selinux_h" "$ac_includes_default"
+if test "x$ac_cv_header_selinux_selinux_h" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SELINUX_SELINUX_H 1
+_ACEOF
+
+fi
+
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for security_get_boolean_active in -lselinux" >&5
+$as_echo_n "checking for security_get_boolean_active in -lselinux... " >&6; }
+if test "${ac_cv_lib_selinux_security_get_boolean_active+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lselinux $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char security_get_boolean_active ();
+int
+main ()
+{
+return security_get_boolean_active ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_selinux_security_get_boolean_active=yes
+else
+ ac_cv_lib_selinux_security_get_boolean_active=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_security_get_boolean_active" >&5
+$as_echo "$ac_cv_lib_selinux_security_get_boolean_active" >&6; }
+if test "x$ac_cv_lib_selinux_security_get_boolean_active" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSELINUX 1
+_ACEOF
+
+ LIBS="-lselinux $LIBS"
+
+fi
+
+

View File

@ -21,16 +21,16 @@ debugging problem of GOMP outside of the scope of this Bug.
Index: gdb-7.5.50.20130118/gdb/infrun.c Index: gdb-7.6.50.20130731-cvs/gdb/infrun.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/infrun.c 2013-01-19 23:38:22.329371410 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/infrun.c 2013-08-02 17:10:08.446962958 +0200
+++ gdb-7.5.50.20130118/gdb/infrun.c 2013-01-19 23:39:03.322429041 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/infrun.c 2013-08-02 17:10:49.109016685 +0200
@@ -4918,6 +4918,16 @@ process_event_stop_test: @@ -4930,6 +4930,16 @@ process_event_stop_test:
if (ecs->event_thread->control.step_over_calls == STEP_OVER_ALL) if (ecs->event_thread->control.step_over_calls == STEP_OVER_ALL)
{ {
+ struct symbol *stop_fn = find_pc_function (stop_pc); + struct symbol *stop_fn = find_pc_function (stop_pc);
+ struct minimal_symbol *stopf = lookup_minimal_symbol_by_pc (stop_pc); + struct minimal_symbol *stopf = lookup_minimal_symbol_by_pc (stop_pc).minsym;
+ +
+ if ((stop_fn == NULL + if ((stop_fn == NULL
+ || strstr (SYMBOL_LINKAGE_NAME (stop_fn), ".omp_fn.") == NULL) + || strstr (SYMBOL_LINKAGE_NAME (stop_fn), ".omp_fn.") == NULL)
@ -42,7 +42,7 @@ Index: gdb-7.5.50.20130118/gdb/infrun.c
/* We're doing a "next". /* We're doing a "next".
Normal (forward) execution: set a breakpoint at the Normal (forward) execution: set a breakpoint at the
@@ -4953,6 +4963,7 @@ process_event_stop_test: @@ -4965,6 +4975,7 @@ process_event_stop_test:
keep_going (ecs); keep_going (ecs);
return; return;
@ -50,10 +50,10 @@ Index: gdb-7.5.50.20130118/gdb/infrun.c
} }
/* If we are in a function call trampoline (a stub between the /* If we are in a function call trampoline (a stub between the
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.exp Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.fortran/omp-step.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.exp 2013-01-19 23:38:23.213372622 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.fortran/omp-step.exp 2013-08-02 17:10:37.063000571 +0200
@@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
+# Copyright 2009 Free Software Foundation, Inc. +# Copyright 2009 Free Software Foundation, Inc.
+ +
@ -86,10 +86,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.exp
+ +
+gdb_breakpoint [gdb_get_line_number "success"] +gdb_breakpoint [gdb_get_line_number "success"]
+gdb_continue_to_breakpoint "success" ".*success.*" +gdb_continue_to_breakpoint "success" ".*success.*"
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.f90 Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.fortran/omp-step.f90
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.f90 2013-01-19 23:38:23.213372622 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.fortran/omp-step.f90 2013-08-02 17:10:37.063000571 +0200
@@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
+! Copyright 2009 Free Software Foundation, Inc. +! Copyright 2009 Free Software Foundation, Inc.
+ +

View File

@ -3,11 +3,11 @@ Subject: [patch] Fix GNU/Linux core open: Can't read pathname for load map: Inp
[ New patch variant. ] [ New patch variant. ]
Index: gdb-7.5.50.20130118/gdb/solib-svr4.c Index: gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/solib-svr4.c 2013-01-18 23:05:19.414210015 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/solib-svr4.c 2013-08-02 16:27:28.831259468 +0200
+++ gdb-7.5.50.20130118/gdb/solib-svr4.c 2013-01-18 23:05:34.813231664 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c 2013-08-02 16:27:47.871284813 +0200
@@ -1221,8 +1221,17 @@ svr4_read_so_list (CORE_ADDR lm, struct @@ -1359,8 +1359,17 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
SO_NAME_MAX_PATH_SIZE - 1, &errcode); SO_NAME_MAX_PATH_SIZE - 1, &errcode);
if (errcode != 0) if (errcode != 0)
{ {
@ -27,20 +27,20 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
do_cleanups (old_chain); do_cleanups (old_chain);
continue; continue;
} }
Index: gdb-7.5.50.20130118/gdb/solib.c Index: gdb-7.6.50.20130731-cvs/gdb/solib.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/solib.c 2013-01-18 23:05:19.415210017 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/solib.c 2013-08-02 16:27:28.832259470 +0200
+++ gdb-7.5.50.20130118/gdb/solib.c 2013-01-18 23:05:57.421263173 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/solib.c 2013-08-02 16:28:50.421367694 +0200
@@ -666,7 +666,7 @@ solib_used (const struct so_list *const @@ -669,7 +669,7 @@ solib_used (const struct so_list *const
processes we've just attached to, so that's okay. */ processes we've just attached to, so that's okay. */
static void static void
-update_solib_list (int from_tty, struct target_ops *target) -update_solib_list (int from_tty, struct target_ops *target)
+update_solib_list_1 (int from_tty, struct target_ops *target) +update_solib_list_1 (int from_tty, struct target_ops *target)
{ {
struct target_so_ops *ops = solib_ops (target_gdbarch ()); const struct target_so_ops *ops = solib_ops (target_gdbarch ());
struct so_list *inferior = ops->current_sos(); struct so_list *inferior = ops->current_sos();
@@ -837,6 +837,21 @@ Do you need \"set solib-search-path\" or @@ -840,6 +840,21 @@ Do you need \"set solib-search-path\" or
} }
} }
@ -62,11 +62,11 @@ Index: gdb-7.5.50.20130118/gdb/solib.c
/* Return non-zero if NAME is the libpthread shared library. /* Return non-zero if NAME is the libpthread shared library.
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/corefile.exp Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/corefile.exp
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.base/corefile.exp 2013-01-18 23:05:19.416210020 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/corefile.exp 2013-08-02 16:27:28.833259471 +0200
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/corefile.exp 2013-01-18 23:05:34.814231667 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/corefile.exp 2013-08-02 16:27:47.872284814 +0200
@@ -286,3 +286,19 @@ if {$buildid == ""} { @@ -285,3 +285,19 @@ if {$buildid == ""} {
gdb_test "info files" "Local exec file:\r\n\[ \t\]*`[string_to_regexp $debugdir/$buildid]', file type .*" gdb_test "info files" "Local exec file:\r\n\[ \t\]*`[string_to_regexp $debugdir/$buildid]', file type .*"
pass $wholetest pass $wholetest
} }
@ -86,20 +86,18 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/corefile.exp
+ pass $test + pass $test
+ } + }
+} +}
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/solib-symbol.exp Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/solib-symbol.exp
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.base/solib-symbol.exp 2013-01-18 23:05:19.416210020 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/solib-symbol.exp 2013-08-02 16:27:28.833259471 +0200
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/solib-symbol.exp 2013-01-18 23:05:34.814231667 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/solib-symbol.exp 2013-08-02 16:28:22.549330973 +0200
@@ -27,7 +27,8 @@ set lib_flags [list debug ldflags=-Wl,-B @@ -29,6 +29,7 @@ set testfile "solib-symbol-main"
# Binary file.
set testfile "solib-symbol-main"
set srcfile ${srcdir}/${subdir}/${testfile}.c set srcfile ${srcdir}/${subdir}/${testfile}.c
-set binfile ${objdir}/${subdir}/${testfile} set binfile [standard_output_file ${testfile}]
+set executable ${testfile}
+set binfile ${objdir}/${subdir}/${executable}
set bin_flags [list debug shlib=${binfile_lib}] set bin_flags [list debug shlib=${binfile_lib}]
+set executable ${testfile}
if [get_compiler_info] { if [get_compiler_info] {
return -1
@@ -72,8 +73,26 @@ gdb_test "br foo2" \ @@ -72,8 +73,26 @@ gdb_test "br foo2" \
"Breakpoint.*: foo2. .2 locations..*" \ "Breakpoint.*: foo2. .2 locations..*" \
"foo2 in mdlib" "foo2 in mdlib"

View File

@ -1,209 +0,0 @@
http://sourceware.org/ml/gdb-cvs/2013-06/msg00034.html
### src/gdb/ChangeLog 2013/06/05 20:43:53 1.15689
### src/gdb/ChangeLog 2013/06/05 22:28:51 1.15690
## -1,3 +1,14 @@
+2013-06-05 Doug Evans <dje@google.com>
+ Keith Seitz <keiths@redhat.com>
+
+ PR 15519
+ * cp-namespace.c (find_symbol_in_baseclass): Call
+ cp_lookup_symbol_in_namespace instead of cp_lookup_symbol_namespace.
+ Check result of call to lookup_symbol_static.
+ Call lookup_static_symbol_aux unconditionally.
+ Call check_typedef on base types before accessing them.
+ (cp_lookup_nested_symbol): Fix comment.
+
2013-06-05 Luis Machado <lgustavo@codesourcery.com>
* gnu-v3-abi.c (gnuv3_skip_trampoline): Handle thunk
--- src/gdb/cp-namespace.c 2013/05/30 17:29:06 1.67
+++ src/gdb/cp-namespace.c 2013/06/05 22:28:51 1.68
@@ -720,36 +720,40 @@
for (i = 0; i < TYPE_N_BASECLASSES (parent_type); ++i)
{
size_t len;
+ struct type *base_type = TYPE_BASECLASS (parent_type, i);
const char *base_name = TYPE_BASECLASS_NAME (parent_type, i);
if (base_name == NULL)
continue;
/* Search this particular base class. */
- sym = cp_lookup_symbol_namespace (base_name, name, block, VAR_DOMAIN);
+ sym = cp_lookup_symbol_in_namespace (base_name, name, block,
+ VAR_DOMAIN, 0);
if (sym != NULL)
break;
+ /* Now search all static file-level symbols. We have to do this for
+ things like typedefs in the class. First search in this symtab,
+ what we want is possibly there. */
len = strlen (base_name) + 2 + strlen (name) + 1;
concatenated_name = xrealloc (concatenated_name, len);
xsnprintf (concatenated_name, len, "%s::%s", base_name, name);
sym = lookup_symbol_static (concatenated_name, block, VAR_DOMAIN);
+ if (sym != NULL)
+ break;
- /* If there is currently no BLOCK, e.g., the inferior hasn't yet
- been started, then try searching all STATIC_BLOCK symbols in
- all objfiles. */
- if (block == NULL)
- {
- sym = lookup_static_symbol_aux (concatenated_name, VAR_DOMAIN);
- if (sym != NULL)
- break;
- }
+ /* Nope. We now have to search all static blocks in all objfiles,
+ even if block != NULL, because there's no guarantees as to which
+ symtab the symbol we want is in. */
+ sym = lookup_static_symbol_aux (concatenated_name, VAR_DOMAIN);
+ if (sym != NULL)
+ break;
/* If this class has base classes, search them next. */
- if (TYPE_N_BASECLASSES (TYPE_BASECLASS (parent_type, i)) > 0)
+ CHECK_TYPEDEF (base_type);
+ if (TYPE_N_BASECLASSES (base_type) > 0)
{
- sym = find_symbol_in_baseclass (TYPE_BASECLASS (parent_type, i),
- name, block);
+ sym = find_symbol_in_baseclass (base_type, name, block);
if (sym != NULL)
break;
}
@@ -797,8 +801,8 @@
if (sym != NULL)
return sym;
- /* Now search all static file-level symbols. Not strictly
- correct, but more useful than an error. We do not try to
+ /* Now search all static file-level symbols. We have to do this
+ for things like typedefs in the class. We do not try to
guess any imported namespace as even the fully specified
namespace search is already not C++ compliant and more
assumptions could make it too magic. */
### src/gdb/testsuite/ChangeLog 2013/06/05 20:38:37 1.3685
### src/gdb/testsuite/ChangeLog 2013/06/05 22:28:51 1.3686
## -1,3 +1,11 @@
+2013-06-05 Doug Evans <dje@google.com>
+ Keith Seitz <keiths@redhat.com>
+
+ * gdb.cp/derivation2.cc: New file.
+ * gdb.cp/derivation.cc (main): Call foo2.
+ * gdb.cp/derivation.exp: Add tests for typedefs in another
+ file, and when there's an active block.
+
2013-06-05 Luis Machado <lgustavo@codesourcery.com>
* gdb.cp/virtfunc.exp (make_one_vtable_result): Handle extra output
--- src/gdb/testsuite/gdb.cp/derivation2.cc
+++ src/gdb/testsuite/gdb.cp/derivation2.cc 2013-06-10 12:35:14.881272247 +0000
@@ -0,0 +1,49 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2013 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/* A copy of some classes in derivation.cc so that we can test symbol lookup
+ in other CUs. */
+
+class A2 {
+public:
+ typedef int value_type;
+ value_type a;
+
+ A2()
+ {
+ a=1;
+ }
+};
+
+class D2 : public A2 {
+public:
+ value_type d;
+
+ D2()
+ {
+ d=7;
+ }
+};
+
+void
+foo2 ()
+{
+ D2 d2_instance;
+ d2_instance.a = 42;
+ d2_instance.d = 43;
+}
--- src/gdb/testsuite/gdb.cp/derivation.cc 2013/01/01 06:33:27 1.5
+++ src/gdb/testsuite/gdb.cp/derivation.cc 2013/06/05 22:28:51 1.6
@@ -16,6 +16,8 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+extern void foo2 (); /* from derivation2.cc */
+
namespace N {
typedef double value_type;
struct Base { typedef int value_type; };
@@ -306,9 +308,7 @@
N::Derived::value_type d = 1;
N::value_type n = 3.0;
dobj.doit ();
+ foo2 ();
return 0;
}
-
-
-
--- src/gdb/testsuite/gdb.cp/derivation.exp 2013/01/01 06:33:27 1.24
+++ src/gdb/testsuite/gdb.cp/derivation.exp 2013/06/05 22:28:51 1.25
@@ -32,14 +32,15 @@
load_lib "cp-support.exp"
-standard_testfile .cc
+standard_testfile derivation.cc derivation2.cc
-if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug c++}]} {
+if {[prepare_for_testing $testfile.exp $testfile \
+ [list $srcfile $srcfile2] {debug c++}]} {
return -1
}
# Check inheritance of typedefs.
-foreach klass {"A" "D" "E" "F"} {
+foreach klass {"A" "D" "E" "F" "A2" "D2"} {
gdb_test "ptype ${klass}::value_type" "type = int"
gdb_test "whatis ${klass}::value_type" "type = int"
gdb_test "p (${klass}::value_type) 0" " = 0"
@@ -57,6 +58,13 @@
continue
}
+# Check inheritance of typedefs again, but this time with an active block.
+foreach klass {"A" "D" "A2" "D2"} {
+ gdb_test "ptype ${klass}::value_type" "type = int"
+ gdb_test "whatis ${klass}::value_type" "type = int"
+ gdb_test "p (${klass}::value_type) 0" " = 0"
+}
+
gdb_test "up" ".*main.*" "up from marker1"
# Print class types and values.

View File

@ -1,58 +0,0 @@
http://sourceware.org/ml/gdb-cvs/2013-06/msg00044.html
### src/gdb/testsuite/ChangeLog 2013/06/06 19:00:13 1.3688
### src/gdb/testsuite/ChangeLog 2013/06/06 19:02:26 1.3689
## -1,3 +1,7 @@
+2013-06-06 Doug Evans <dje@google.com>
+
+ * gdb.cp/derivation.exp: Make tests have unique names.
+
2013-06-06 Tom Tromey <tromey@redhat.com>
* gdb.base/dump.exp (capture_value): Don't put expression into
--- src/gdb/testsuite/gdb.cp/derivation.exp 2013/06/05 22:28:51 1.25
+++ src/gdb/testsuite/gdb.cp/derivation.exp 2013/06/06 19:02:27 1.26
@@ -40,15 +40,17 @@
}
# Check inheritance of typedefs.
-foreach klass {"A" "D" "E" "F" "A2" "D2"} {
- gdb_test "ptype ${klass}::value_type" "type = int"
- gdb_test "whatis ${klass}::value_type" "type = int"
- gdb_test "p (${klass}::value_type) 0" " = 0"
-}
-foreach klass {"Z" "ZZ"} {
- gdb_test "ptype ${klass}::value_type" "type = float"
- gdb_test "whatis ${klass}::value_type" "type = float"
- gdb_test "p (${klass}::value_type) 0" " = 0"
+with_test_prefix "before run" {
+ foreach klass {"A" "D" "E" "F" "A2" "D2"} {
+ gdb_test "ptype ${klass}::value_type" "type = int"
+ gdb_test "whatis ${klass}::value_type" "type = int"
+ gdb_test "p (${klass}::value_type) 0" " = 0"
+ }
+ foreach klass {"Z" "ZZ"} {
+ gdb_test "ptype ${klass}::value_type" "type = float"
+ gdb_test "whatis ${klass}::value_type" "type = float"
+ gdb_test "p (${klass}::value_type) 0" " = 0"
+ }
}
# Set it up at a breakpoint so we can play with the variable values.
@@ -59,10 +61,12 @@
}
# Check inheritance of typedefs again, but this time with an active block.
-foreach klass {"A" "D" "A2" "D2"} {
- gdb_test "ptype ${klass}::value_type" "type = int"
- gdb_test "whatis ${klass}::value_type" "type = int"
- gdb_test "p (${klass}::value_type) 0" " = 0"
+with_test_prefix "at marker1" {
+ foreach klass {"A" "D" "A2" "D2"} {
+ gdb_test "ptype ${klass}::value_type" "type = int"
+ gdb_test "whatis ${klass}::value_type" "type = int"
+ gdb_test "p (${klass}::value_type) 0" " = 0"
+ }
}
gdb_test "up" ".*main.*" "up from marker1"

View File

@ -1,102 +0,0 @@
http://sourceware.org/ml/gdb-cvs/2013-06/msg00012.html
### src/gdb/ChangeLog 2013/06/04 02:44:34 1.15680
### src/gdb/ChangeLog 2013/06/04 12:50:20 1.15681
## -1,3 +1,11 @@
+2013-06-04 Gary Benson <gbenson@redhat.com>
+
+ * probe.h (get_probe_argument_count): New declaration.
+ (evaluate_probe_argument): Likewise.
+ * probe.c (get_probe_argument_count): New function.
+ (evaluate_probe_argument): Likewise.
+ (probe_safe_evaluate_at_pc): Use the above new functions.
+
2013-06-04 Alan Modra <amodra@gmail.com>
* ppc-tdep.h (ppc_insns_match_pattern): Update prototype.
--- src/gdb/probe.c 2013/05/30 17:39:34 1.8
+++ src/gdb/probe.c 2013/06/04 12:50:20 1.9
@@ -611,28 +611,55 @@
/* See comments in probe.h. */
+unsigned
+get_probe_argument_count (struct probe *probe)
+{
+ const struct sym_probe_fns *probe_fns;
+
+ gdb_assert (probe->objfile != NULL);
+ gdb_assert (probe->objfile->sf != NULL);
+
+ probe_fns = probe->objfile->sf->sym_probe_fns;
+
+ gdb_assert (probe_fns != NULL);
+
+ return probe_fns->sym_get_probe_argument_count (probe);
+}
+
+/* See comments in probe.h. */
+
+struct value *
+evaluate_probe_argument (struct probe *probe, unsigned n)
+{
+ const struct sym_probe_fns *probe_fns;
+
+ gdb_assert (probe->objfile != NULL);
+ gdb_assert (probe->objfile->sf != NULL);
+
+ probe_fns = probe->objfile->sf->sym_probe_fns;
+
+ gdb_assert (probe_fns != NULL);
+
+ return probe_fns->sym_evaluate_probe_argument (probe, n);
+}
+
+/* See comments in probe.h. */
+
struct value *
probe_safe_evaluate_at_pc (struct frame_info *frame, unsigned n)
{
struct probe *probe;
- const struct sym_probe_fns *probe_fns;
unsigned n_args;
probe = find_probe_by_pc (get_frame_pc (frame));
if (!probe)
return NULL;
- gdb_assert (probe->objfile != NULL);
- gdb_assert (probe->objfile->sf != NULL);
- gdb_assert (probe->objfile->sf->sym_probe_fns != NULL);
-
- probe_fns = probe->objfile->sf->sym_probe_fns;
- n_args = probe_fns->sym_get_probe_argument_count (probe);
-
+ n_args = get_probe_argument_count (probe);
if (n >= n_args)
return NULL;
- return probe_fns->sym_evaluate_probe_argument (probe, n);
+ return evaluate_probe_argument (probe, n);
}
/* See comment in probe.h. */
--- src/gdb/probe.h 2013/01/01 06:32:49 1.4
+++ src/gdb/probe.h 2013/06/04 12:50:21 1.5
@@ -214,6 +214,16 @@
extern struct cmd_list_element **info_probes_cmdlist_get (void);
+/* Return the argument count of the specified probe. */
+
+extern unsigned get_probe_argument_count (struct probe *probe);
+
+/* Evaluate argument N of the specified probe. N must be between 0
+ inclusive and get_probe_argument_count exclusive. */
+
+extern struct value *evaluate_probe_argument (struct probe *probe,
+ unsigned n);
+
/* A convenience function that finds a probe at the PC in FRAME and
evaluates argument N, with 0 <= N < number_of_args. If there is no
probe at that location, or if the probe does not have enough arguments,

View File

@ -1,181 +0,0 @@
http://sourceware.org/ml/gdb-cvs/2013-06/msg00013.html
### src/gdb/ChangeLog 2013/06/04 12:50:20 1.15681
### src/gdb/ChangeLog 2013/06/04 12:53:33 1.15682
## -1,5 +1,24 @@
2013-06-04 Gary Benson <gbenson@redhat.com>
+ * objfiles.h (inhibit_section_map_updates): New function
+ declaration.
+ (resume_section_map_updates): Likewise.
+ (resume_section_map_updates_cleanup): Likewise.
+ * objfiles.c (objfile_pspace_info): Removed field
+ "objfiles_changed_p". New fields "new_objfiles_available",
+ "section_map_dirty" and "inhibit_updates".
+ (allocate_objfile): Set new_objfiles_available.
+ (free_objfile): Set section_map_dirty.
+ (objfile_relocate1): Likewise.
+ (in_plt_section): Likewise.
+ (find_pc_section): Update the conditions under which the
+ section map will be updated.
+ (inhibit_section_map_updates): New function.
+ (resume_section_map_updates): Likewise.
+ (resume_section_map_updates_cleanup): Likewise.
+
+2013-06-04 Gary Benson <gbenson@redhat.com>
+
* probe.h (get_probe_argument_count): New declaration.
(evaluate_probe_argument): Likewise.
* probe.c (get_probe_argument_count): New function.
--- src/gdb/objfiles.c 2013/05/06 19:15:17 1.160
+++ src/gdb/objfiles.c 2013/06/04 12:53:34 1.161
@@ -67,9 +67,18 @@
struct objfile_pspace_info
{
- int objfiles_changed_p;
struct obj_section **sections;
int num_sections;
+
+ /* Nonzero if object files have been added since the section map
+ was last updated. */
+ int new_objfiles_available;
+
+ /* Nonzero if the section map MUST be updated before use. */
+ int section_map_dirty;
+
+ /* Nonzero if section map updates should be inhibited if possible. */
+ int inhibit_updates;
};
/* Per-program-space data key. */
@@ -317,7 +326,7 @@
objfile->flags |= flags;
/* Rebuild section map next time we need it. */
- get_objfile_pspace_data (objfile->pspace)->objfiles_changed_p = 1;
+ get_objfile_pspace_data (objfile->pspace)->new_objfiles_available = 1;
return objfile;
}
@@ -646,7 +655,7 @@
obstack_free (&objfile->objfile_obstack, 0);
/* Rebuild section map next time we need it. */
- get_objfile_pspace_data (objfile->pspace)->objfiles_changed_p = 1;
+ get_objfile_pspace_data (objfile->pspace)->section_map_dirty = 1;
xfree (objfile);
}
@@ -826,7 +835,7 @@
}
/* Rebuild section map next time we need it. */
- get_objfile_pspace_data (objfile->pspace)->objfiles_changed_p = 1;
+ get_objfile_pspace_data (objfile->pspace)->section_map_dirty = 1;
/* Update the table in exec_ops, used to read memory. */
ALL_OBJFILE_OSECTIONS (objfile, s)
@@ -1291,11 +1300,14 @@
update_section_map (struct program_space *pspace,
struct obj_section ***pmap, int *pmap_size)
{
+ struct objfile_pspace_info *pspace_info;
int alloc_size, map_size, i;
struct obj_section *s, **map;
struct objfile *objfile;
- gdb_assert (get_objfile_pspace_data (pspace)->objfiles_changed_p != 0);
+ pspace_info = get_objfile_pspace_data (pspace);
+ gdb_assert (pspace_info->section_map_dirty != 0
+ || pspace_info->new_objfiles_available != 0);
map = *pmap;
xfree (map);
@@ -1365,7 +1377,9 @@
return s;
pspace_info = get_objfile_pspace_data (current_program_space);
- if (pspace_info->objfiles_changed_p != 0)
+ if (pspace_info->section_map_dirty
+ || (pspace_info->new_objfiles_available
+ && !pspace_info->inhibit_updates))
{
update_section_map (current_program_space,
&pspace_info->sections,
@@ -1373,7 +1387,8 @@
/* Don't need updates to section map until objfiles are added,
removed or relocated. */
- pspace_info->objfiles_changed_p = 0;
+ pspace_info->new_objfiles_available = 0;
+ pspace_info->section_map_dirty = 0;
}
/* The C standard (ISO/IEC 9899:TC2) requires the BASE argument to
@@ -1414,14 +1429,38 @@
}
-/* Set objfiles_changed_p so section map will be rebuilt next time it
+/* Set section_map_dirty so section map will be rebuilt next time it
is used. Called by reread_symbols. */
void
objfiles_changed (void)
{
/* Rebuild section map next time we need it. */
- get_objfile_pspace_data (current_program_space)->objfiles_changed_p = 1;
+ get_objfile_pspace_data (current_program_space)->section_map_dirty = 1;
+}
+
+/* See comments in objfiles.h. */
+
+void
+inhibit_section_map_updates (struct program_space *pspace)
+{
+ get_objfile_pspace_data (pspace)->inhibit_updates = 1;
+}
+
+/* See comments in objfiles.h. */
+
+void
+resume_section_map_updates (struct program_space *pspace)
+{
+ get_objfile_pspace_data (pspace)->inhibit_updates = 0;
+}
+
+/* See comments in objfiles.h. */
+
+void
+resume_section_map_updates_cleanup (void *arg)
+{
+ resume_section_map_updates (arg);
}
/* The default implementation for the "iterate_over_objfiles_in_search_order"
--- src/gdb/objfiles.h 2013/05/06 19:15:17 1.106
+++ src/gdb/objfiles.h 2013/06/04 12:53:34 1.107
@@ -501,6 +501,22 @@
modules. */
DECLARE_REGISTRY(objfile);
+/* In normal use, the section map will be rebuilt by find_pc_section
+ if objfiles have been added, removed or relocated since it was last
+ called. Calling inhibit_section_map_updates will inhibit this
+ behavior until resume_section_map_updates is called. If you call
+ inhibit_section_map_updates you must ensure that every call to
+ find_pc_section in the inhibited region relates to a section that
+ is already in the section map and has not since been removed or
+ relocated. */
+extern void inhibit_section_map_updates (struct program_space *pspace);
+
+/* Resume automatically rebuilding the section map as required. */
+extern void resume_section_map_updates (struct program_space *pspace);
+
+/* Version of the above suitable for use as a cleanup. */
+extern void resume_section_map_updates_cleanup (void *arg);
+
extern void default_iterate_over_objfiles_in_search_order
(struct gdbarch *gdbarch,
iterate_over_objfiles_in_search_order_cb_ftype *cb,

View File

@ -1,298 +0,0 @@
http://sourceware.org/ml/gdb-cvs/2013-06/msg00014.html
### src/gdb/gdbserver/ChangeLog 2013/05/31 19:14:33 1.720
### src/gdb/gdbserver/ChangeLog 2013/06/04 12:59:20 1.721
## -1,3 +1,12 @@
+2013-06-04 Gary Benson <gbenson@redhat.com>
+
+ * server.c (handle_query): Add "augmented-libraries-svr4-read+"
+ to qSupported response when appropriate.
+ (handle_qxfer_libraries_svr4): Allow qXfer:libraries-svr4:read
+ with nonzero-length annex.
+ * linux-low.c (linux_qxfer_libraries_svr4): Parse and handle
+ arguments supplied in annex.
+
2013-05-31 Doug Evans <dje@google.com>
* linux-x86-low.c (ps_get_thread_area): Properly extend address to
--- src/gdb/gdbserver/linux-low.c 2013/05/23 17:17:50 1.237
+++ src/gdb/gdbserver/linux-low.c 2013/06/04 12:59:21 1.238
@@ -5728,6 +5728,12 @@
};
const struct link_map_offsets *lmo;
unsigned int machine;
+ int ptr_size;
+ CORE_ADDR lm_addr = 0, lm_prev = 0;
+ int allocated = 1024;
+ char *p;
+ CORE_ADDR l_name, l_addr, l_ld, l_next, l_prev;
+ int header_done = 0;
if (writebuf != NULL)
return -2;
@@ -5738,128 +5744,144 @@
xsnprintf (filename, sizeof filename, "/proc/%d/exe", pid);
is_elf64 = elf_64_file_p (filename, &machine);
lmo = is_elf64 ? &lmo_64bit_offsets : &lmo_32bit_offsets;
+ ptr_size = is_elf64 ? 8 : 4;
- if (priv->r_debug == 0)
- priv->r_debug = get_r_debug (pid, is_elf64);
-
- /* We failed to find DT_DEBUG. Such situation will not change for this
- inferior - do not retry it. Report it to GDB as E01, see for the reasons
- at the GDB solib-svr4.c side. */
- if (priv->r_debug == (CORE_ADDR) -1)
- return -1;
-
- if (priv->r_debug == 0)
+ while (annex[0] != '\0')
{
- document = xstrdup ("<library-list-svr4 version=\"1.0\"/>\n");
+ const char *sep;
+ CORE_ADDR *addrp;
+ int len;
+
+ sep = strchr (annex, '=');
+ if (sep == NULL)
+ break;
+
+ len = sep - annex;
+ if (len == 5 && strncmp (annex, "start", 5) == 0)
+ addrp = &lm_addr;
+ else if (len == 4 && strncmp (annex, "prev", 4) == 0)
+ addrp = &lm_prev;
+ else
+ {
+ annex = strchr (sep, ';');
+ if (annex == NULL)
+ break;
+ annex++;
+ continue;
+ }
+
+ annex = decode_address_to_semicolon (addrp, sep + 1);
}
- else
+
+ if (lm_addr == 0)
{
- int allocated = 1024;
- char *p;
- const int ptr_size = is_elf64 ? 8 : 4;
- CORE_ADDR lm_addr, lm_prev, l_name, l_addr, l_ld, l_next, l_prev;
- int r_version, header_done = 0;
-
- document = xmalloc (allocated);
- strcpy (document, "<library-list-svr4 version=\"1.0\"");
- p = document + strlen (document);
-
- r_version = 0;
- if (linux_read_memory (priv->r_debug + lmo->r_version_offset,
- (unsigned char *) &r_version,
- sizeof (r_version)) != 0
- || r_version != 1)
+ int r_version = 0;
+
+ if (priv->r_debug == 0)
+ priv->r_debug = get_r_debug (pid, is_elf64);
+
+ /* We failed to find DT_DEBUG. Such situation will not change
+ for this inferior - do not retry it. Report it to GDB as
+ E01, see for the reasons at the GDB solib-svr4.c side. */
+ if (priv->r_debug == (CORE_ADDR) -1)
+ return -1;
+
+ if (priv->r_debug != 0)
{
- warning ("unexpected r_debug version %d", r_version);
- goto done;
+ if (linux_read_memory (priv->r_debug + lmo->r_version_offset,
+ (unsigned char *) &r_version,
+ sizeof (r_version)) != 0
+ || r_version != 1)
+ {
+ warning ("unexpected r_debug version %d", r_version);
+ }
+ else if (read_one_ptr (priv->r_debug + lmo->r_map_offset,
+ &lm_addr, ptr_size) != 0)
+ {
+ warning ("unable to read r_map from 0x%lx",
+ (long) priv->r_debug + lmo->r_map_offset);
+ }
}
+ }
+
+ document = xmalloc (allocated);
+ strcpy (document, "<library-list-svr4 version=\"1.0\"");
+ p = document + strlen (document);
+
+ while (lm_addr
+ && read_one_ptr (lm_addr + lmo->l_name_offset,
+ &l_name, ptr_size) == 0
+ && read_one_ptr (lm_addr + lmo->l_addr_offset,
+ &l_addr, ptr_size) == 0
+ && read_one_ptr (lm_addr + lmo->l_ld_offset,
+ &l_ld, ptr_size) == 0
+ && read_one_ptr (lm_addr + lmo->l_prev_offset,
+ &l_prev, ptr_size) == 0
+ && read_one_ptr (lm_addr + lmo->l_next_offset,
+ &l_next, ptr_size) == 0)
+ {
+ unsigned char libname[PATH_MAX];
- if (read_one_ptr (priv->r_debug + lmo->r_map_offset,
- &lm_addr, ptr_size) != 0)
+ if (lm_prev != l_prev)
{
- warning ("unable to read r_map from 0x%lx",
- (long) priv->r_debug + lmo->r_map_offset);
- goto done;
+ warning ("Corrupted shared library list: 0x%lx != 0x%lx",
+ (long) lm_prev, (long) l_prev);
+ break;
}
- lm_prev = 0;
- while (read_one_ptr (lm_addr + lmo->l_name_offset,
- &l_name, ptr_size) == 0
- && read_one_ptr (lm_addr + lmo->l_addr_offset,
- &l_addr, ptr_size) == 0
- && read_one_ptr (lm_addr + lmo->l_ld_offset,
- &l_ld, ptr_size) == 0
- && read_one_ptr (lm_addr + lmo->l_prev_offset,
- &l_prev, ptr_size) == 0
- && read_one_ptr (lm_addr + lmo->l_next_offset,
- &l_next, ptr_size) == 0)
+ /* Not checking for error because reading may stop before
+ we've got PATH_MAX worth of characters. */
+ libname[0] = '\0';
+ linux_read_memory (l_name, libname, sizeof (libname) - 1);
+ libname[sizeof (libname) - 1] = '\0';
+ if (libname[0] != '\0')
{
- unsigned char libname[PATH_MAX];
+ /* 6x the size for xml_escape_text below. */
+ size_t len = 6 * strlen ((char *) libname);
+ char *name;
- if (lm_prev != l_prev)
+ if (!header_done)
{
- warning ("Corrupted shared library list: 0x%lx != 0x%lx",
- (long) lm_prev, (long) l_prev);
- break;
+ /* Terminate `<library-list-svr4'. */
+ *p++ = '>';
+ header_done = 1;
}
- /* Not checking for error because reading may stop before
- we've got PATH_MAX worth of characters. */
- libname[0] = '\0';
- linux_read_memory (l_name, libname, sizeof (libname) - 1);
- libname[sizeof (libname) - 1] = '\0';
- if (libname[0] != '\0')
+ while (allocated < p - document + len + 200)
{
- /* 6x the size for xml_escape_text below. */
- size_t len = 6 * strlen ((char *) libname);
- char *name;
-
- if (!header_done)
- {
- /* Terminate `<library-list-svr4'. */
- *p++ = '>';
- header_done = 1;
- }
-
- while (allocated < p - document + len + 200)
- {
- /* Expand to guarantee sufficient storage. */
- uintptr_t document_len = p - document;
-
- document = xrealloc (document, 2 * allocated);
- allocated *= 2;
- p = document + document_len;
- }
-
- name = xml_escape_text ((char *) libname);
- p += sprintf (p, "<library name=\"%s\" lm=\"0x%lx\" "
- "l_addr=\"0x%lx\" l_ld=\"0x%lx\"/>",
- name, (unsigned long) lm_addr,
- (unsigned long) l_addr, (unsigned long) l_ld);
- free (name);
- }
- else if (lm_prev == 0)
- {
- sprintf (p, " main-lm=\"0x%lx\"", (unsigned long) lm_addr);
- p = p + strlen (p);
- }
+ /* Expand to guarantee sufficient storage. */
+ uintptr_t document_len = p - document;
- if (l_next == 0)
- break;
+ document = xrealloc (document, 2 * allocated);
+ allocated *= 2;
+ p = document + document_len;
+ }
- lm_prev = lm_addr;
- lm_addr = l_next;
+ name = xml_escape_text ((char *) libname);
+ p += sprintf (p, "<library name=\"%s\" lm=\"0x%lx\" "
+ "l_addr=\"0x%lx\" l_ld=\"0x%lx\"/>",
+ name, (unsigned long) lm_addr,
+ (unsigned long) l_addr, (unsigned long) l_ld);
+ free (name);
}
- done:
- if (!header_done)
+ else if (lm_prev == 0)
{
- /* Empty list; terminate `<library-list-svr4'. */
- strcpy (p, "/>");
+ sprintf (p, " main-lm=\"0x%lx\"", (unsigned long) lm_addr);
+ p = p + strlen (p);
}
- else
- strcpy (p, "</library-list-svr4>");
+
+ lm_prev = lm_addr;
+ lm_addr = l_next;
}
+ if (!header_done)
+ {
+ /* Empty list; terminate `<library-list-svr4'. */
+ strcpy (p, "/>");
+ }
+ else
+ strcpy (p, "</library-list-svr4>");
+
document_len = strlen (document);
if (offset < document_len)
document_len -= offset;
--- src/gdb/gdbserver/server.c 2013/05/24 11:28:06 1.191
+++ src/gdb/gdbserver/server.c 2013/06/04 12:59:21 1.192
@@ -1115,8 +1115,7 @@
if (writebuf != NULL)
return -2;
- if (annex[0] != '\0' || !target_running ()
- || the_target->qxfer_libraries_svr4 == NULL)
+ if (!target_running () || the_target->qxfer_libraries_svr4 == NULL)
return -1;
return the_target->qxfer_libraries_svr4 (annex, readbuf, writebuf, offset, len);
@@ -1743,7 +1742,8 @@
PBUFSIZ - 1);
if (the_target->qxfer_libraries_svr4 != NULL)
- strcat (own_buf, ";qXfer:libraries-svr4:read+");
+ strcat (own_buf, ";qXfer:libraries-svr4:read+"
+ ";augmented-libraries-svr4-read+");
else
{
/* We do not have any hook to indicate whether the non-SVR4 target

View File

@ -1,35 +0,0 @@
http://sourceware.org/ml/gdb-cvs/2013-06/msg00015.html
### src/gdb/ChangeLog 2013/06/04 12:53:33 1.15682
### src/gdb/ChangeLog 2013/06/04 13:02:15 1.15683
## -1,5 +1,9 @@
2013-06-04 Gary Benson <gbenson@redhat.com>
+ * NEWS: Update.
+
+2013-06-04 Gary Benson <gbenson@redhat.com>
+
* objfiles.h (inhibit_section_map_updates): New function
declaration.
(resume_section_map_updates): Likewise.
Index: gdb-7.6/gdb/NEWS
===================================================================
--- gdb-7.6.orig/gdb/NEWS 2013-06-10 14:27:02.071184153 +0200
+++ gdb-7.6/gdb/NEWS 2013-06-10 14:28:34.391145339 +0200
@@ -4,6 +4,16 @@
* Newly installed $prefix/bin/gcore acts as a shell interface for the
GDB command gcore.
+* New remote packets
+
+qXfer:libraries-svr4:read's annex
+ The previously unused annex of the qXfer:libraries-svr4:read packet
+ is now used to support passing an argument list. The remote stub
+ reports support for this argument list to GDB's qSupported query.
+ The defined arguments are "start" and "prev", used to reduce work
+ necessary for library list updating, resulting in significant
+ speedup.
+
*** Changes in GDB 7.6
* Target record has been renamed to record-full.

View File

@ -1,91 +0,0 @@
http://sourceware.org/ml/gdb-cvs/2013-06/msg00016.html
### src/gdb/doc/ChangeLog 2013/05/24 04:50:26 1.1463
### src/gdb/doc/ChangeLog 2013/06/04 13:07:45 1.1464
## -1,3 +1,12 @@
+2013-06-04 Gary Benson <gbenson@redhat.com>
+
+ * gdb.texinfo (General Query Packets/qSupported): Added
+ "qXfer:libraries-svr4:read" and "augmented-libraries-svr4-read".
+ to the table of currently defined stub features.
+ Added a more detailed entry for "augmented-libraries-svr4-read".
+ (General Query Packets/qXfer:libraries-svr4:read): Documented
+ the augmented form of this packet.
+
2013-05-23 Joel Brobecker <brobecker@adacore.com>
* gdb.texinfo (System-wide Configuration Scripts): Renames
--- src/gdb/doc/gdb.texinfo 2013/05/24 04:50:26 1.1093
+++ src/gdb/doc/gdb.texinfo 2013/06/04 13:07:45 1.1094
@@ -38594,6 +38594,16 @@
@tab @samp{-}
@tab Yes
+@item @samp{qXfer:libraries-svr4:read}
+@tab No
+@tab @samp{-}
+@tab Yes
+
+@item @samp{augmented-libraries-svr4-read}
+@tab No
+@tab @samp{-}
+@tab No
+
@item @samp{qXfer:memory-map:read}
@tab No
@tab @samp{-}
@@ -38770,6 +38780,11 @@
The remote stub understands the @samp{qXfer:libraries-svr4:read} packet
(@pxref{qXfer svr4 library list read}).
+@item augmented-libraries-svr4-read
+The remote stub understands the augmented form of the
+@samp{qXfer:libraries-svr4:read} packet
+(@pxref{qXfer svr4 library list read}).
+
@item qXfer:memory-map:read
The remote stub understands the @samp{qXfer:memory-map:read} packet
(@pxref{qXfer memory map read}).
@@ -39065,7 +39080,10 @@
@anchor{qXfer svr4 library list read}
Access the target's list of loaded libraries when the target is an SVR4
platform. @xref{Library List Format for SVR4 Targets}. The annex part
-of the generic @samp{qXfer} packet must be empty (@pxref{qXfer read}).
+of the generic @samp{qXfer} packet must be empty unless the remote
+stub indicated it supports the augmented form of this packet
+by supplying an appropriate @samp{qSupported} response
+(@pxref{qXfer read}, @ref{qSupported}).
This packet is optional for better performance on SVR4 targets.
@value{GDBN} uses memory read packets to read the SVR4 library list otherwise.
@@ -39073,6 +39091,30 @@
This packet is not probed by default; the remote stub must request it,
by supplying an appropriate @samp{qSupported} response (@pxref{qSupported}).
+If the remote stub indicates it supports the augmented form of this
+packet then the annex part of the generic @samp{qXfer} packet may
+contain a semicolon-separated list of @samp{@var{name}=@var{value}}
+arguments. The currently supported arguments are:
+
+@table @code
+@item start=@var{address}
+A hexadecimal number specifying the address of the @samp{struct
+link_map} to start reading the library list from. If unset or zero
+then the first @samp{struct link_map} in the library list will be
+chosen as the starting point.
+
+@item prev=@var{address}
+A hexadecimal number specifying the address of the @samp{struct
+link_map} immediately preceding the @samp{struct link_map}
+specified by the @samp{start} argument. If unset or zero then
+the remote stub will expect that no @samp{struct link_map}
+exists prior to the starting point.
+
+@end table
+
+Arguments that are not understood by the remote stub will be silently
+ignored.
+
@item qXfer:memory-map:read::@var{offset},@var{length}
@anchor{qXfer memory map read}
Access the target's @dfn{memory-map}. @xref{Memory Map Format}. The

View File

@ -1,132 +0,0 @@
http://sourceware.org/ml/gdb-cvs/2013-06/msg00017.html
### src/gdb/ChangeLog 2013/06/04 13:02:15 1.15683
### src/gdb/ChangeLog 2013/06/04 13:10:53 1.15684
## -1,5 +1,21 @@
2013-06-04 Gary Benson <gbenson@redhat.com>
+ * target.h (target_ops): New field
+ "to_augmented_libraries_svr4_read".
+ (target_augmented_libraries_svr4_read): New macro.
+ * target.c (update_current_target): Handle
+ to_augmented_libraries_svr4_read.
+ * remote.c (remote_state): New field
+ "augmented_libraries_svr4_read".
+ (remote_augmented_libraries_svr4_read_feature): New function.
+ (remote_protocol_features): Add entry for
+ "augmented-libraries-svr4-read".
+ (remote_augmented_libraries_svr4_read): New function.
+ (init_remote_ops): Initialize
+ remote_ops.to_augmented_libraries_svr4_read.
+
+2013-06-04 Gary Benson <gbenson@redhat.com>
+
* NEWS: Update.
2013-06-04 Gary Benson <gbenson@redhat.com>
--- src/gdb/remote.c 2013/05/30 09:29:18 1.552
+++ src/gdb/remote.c 2013/06/04 13:10:53 1.553
@@ -361,6 +361,10 @@
/* True if the stub can collect strings using tracenz bytecode. */
int string_tracing;
+ /* True if the stub supports qXfer:libraries-svr4:read with a
+ non-empty annex. */
+ int augmented_libraries_svr4_read;
+
/* Nonzero if the user has pressed Ctrl-C, but the target hasn't
responded to that. */
int ctrlc_pending_p;
@@ -3949,6 +3953,16 @@
rs->string_tracing = (support == PACKET_ENABLE);
}
+static void
+remote_augmented_libraries_svr4_read_feature
+ (const struct protocol_feature *feature,
+ enum packet_support support, const char *value)
+{
+ struct remote_state *rs = get_remote_state ();
+
+ rs->augmented_libraries_svr4_read = (support == PACKET_ENABLE);
+}
+
static struct protocol_feature remote_protocol_features[] = {
{ "PacketSize", PACKET_DISABLE, remote_packet_size, -1 },
{ "qXfer:auxv:read", PACKET_DISABLE, remote_supported_packet,
@@ -3959,6 +3973,8 @@
PACKET_qXfer_libraries },
{ "qXfer:libraries-svr4:read", PACKET_DISABLE, remote_supported_packet,
PACKET_qXfer_libraries_svr4 },
+ { "augmented-libraries-svr4-read", PACKET_DISABLE,
+ remote_augmented_libraries_svr4_read_feature, -1 },
{ "qXfer:memory-map:read", PACKET_DISABLE, remote_supported_packet,
PACKET_qXfer_memory_map },
{ "qXfer:spu:read", PACKET_DISABLE, remote_supported_packet,
@@ -11439,6 +11455,14 @@
return btrace;
}
+static int
+remote_augmented_libraries_svr4_read (void)
+{
+ struct remote_state *rs = get_remote_state ();
+
+ return rs->augmented_libraries_svr4_read;
+}
+
static void
init_remote_ops (void)
{
@@ -11561,6 +11585,8 @@
remote_ops.to_disable_btrace = remote_disable_btrace;
remote_ops.to_teardown_btrace = remote_teardown_btrace;
remote_ops.to_read_btrace = remote_read_btrace;
+ remote_ops.to_augmented_libraries_svr4_read =
+ remote_augmented_libraries_svr4_read;
}
/* Set up the extended remote vector by making a copy of the standard
--- src/gdb/target.c 2013/05/14 20:33:36 1.335
+++ src/gdb/target.c 2013/06/04 13:10:53 1.336
@@ -731,6 +731,7 @@
INHERIT (to_traceframe_info, t);
INHERIT (to_use_agent, t);
INHERIT (to_can_use_agent, t);
+ INHERIT (to_augmented_libraries_svr4_read, t);
INHERIT (to_magic, t);
INHERIT (to_supports_evaluation_of_breakpoint_conditions, t);
INHERIT (to_can_run_breakpoint_commands, t);
@@ -975,6 +976,9 @@
de_fault (to_can_use_agent,
(int (*) (void))
return_zero);
+ de_fault (to_augmented_libraries_svr4_read,
+ (int (*) (void))
+ return_zero);
de_fault (to_execution_direction, default_execution_direction);
#undef de_fault
--- src/gdb/target.h 2013/05/14 20:33:36 1.262
+++ src/gdb/target.h 2013/06/04 13:10:53 1.263
@@ -941,6 +941,10 @@
(inclusive) to function END (exclusive). */
void (*to_call_history_range) (ULONGEST begin, ULONGEST end, int flags);
+ /* Nonzero if TARGET_OBJECT_LIBRARIES_SVR4 may be read with a
+ non-empty annex. */
+ int (*to_augmented_libraries_svr4_read) (void);
+
int to_magic;
/* Need sub-structure for target machine related rather than comm related?
*/
@@ -1809,6 +1813,9 @@
#define target_can_use_agent() \
(*current_target.to_can_use_agent) ()
+#define target_augmented_libraries_svr4_read() \
+ (*current_target.to_augmented_libraries_svr4_read) ()
+
/* Command logging facility. */
#define target_log_command(p) \

File diff suppressed because it is too large Load Diff

View File

@ -1,462 +0,0 @@
http://sourceware.org/ml/gdb-cvs/2013-06/msg00019.html
### src/gdb/testsuite/ChangeLog 2013/05/30 00:25:16 1.3682
### src/gdb/testsuite/ChangeLog 2013/06/04 13:23:31 1.3683
## -1,3 +1,19 @@
+2013-06-04 Jan Kratochvil <jan.kratochvil@redhat.com>
+ Gary Benson <gbenson@redhat.com>
+
+ * lib/gdb.exp (build_executable_from_specs): Use gdb_compile_pthread,
+ gdb_compile_shlib or gdb_compile_shlib_pthreads where appropriate.
+ * lib/prelink-support.exp (build_executable_own_libs): Allow INTERP
+ to be set to "no" to indicate that no ld.so copy should be made.
+ * gdb.base/break-interp.exp (solib_bp): New constant.
+ (reach_1): Use the above instead of "_dl_debug_state".
+ (test_attach): Likewise.
+ (test_ld): Likewise.
+ * gdb.threads/dlopen-libpthread.exp: New file.
+ * gdb.threads/dlopen-libpthread.c: Likewise.
+ * gdb.threads/dlopen-libpthread-lib.c: Likewise.
+ * gdb.base/solib-corrupted.exp: Disable test if GDB is using probes.
+
2013-05-30 Yao Qi <yao@codesourcery.com>
* gdb.mi/mi-cmd-param-changed.exp (test_command_param_changed):
Index: gdb-7.6/gdb/testsuite/gdb.base/break-interp.exp
===================================================================
--- gdb-7.6.orig/gdb/testsuite/gdb.base/break-interp.exp 2013-06-10 14:29:24.815123941 +0200
+++ gdb-7.6/gdb/testsuite/gdb.base/break-interp.exp 2013-06-10 14:30:18.086102375 +0200
@@ -109,12 +109,19 @@ proc strip_debug {dest} {
}
}
+# The marker function for the standard runtime linker interface is
+# _dl_debug_state. The probes-based interface has no specific marker
+# function; the probe we will stop on (init_start) is in dl_main so we
+# check for that.
+
+set solib_bp {(_dl_debug_state|dl_main)}
+
# Implementation of reach.
proc reach_1 {func command displacement} {
- global gdb_prompt expect_out
+ global gdb_prompt expect_out solib_bp
- if {$func == "_dl_debug_state"} {
+ if {$func == $solib_bp} {
# Breakpoint on _dl_debug_state can have problems due to its overlap
# with the existing internal breakpoint from GDB.
gdb_test_no_output "set stop-on-solib-events 1"
@@ -142,21 +149,21 @@ proc reach_1 {func command displacement}
exp_continue
}
-re "Breakpoint \[0-9\]+, \\.?(__GI_)?$func \\(.*\\) at .*:\[0-9\]+\r\n.*$gdb_prompt $" {
- if {$func == "_dl_debug_state"} {
+ if {$func == $solib_bp} {
fail $test
} else {
pass $test
}
}
-re "Breakpoint \[0-9\]+, \[0-9xa-f\]+ in \\.?(__GI_)?$func \\(\\).*\r\n$gdb_prompt $" {
- if {$func == "_dl_debug_state"} {
+ if {$func == $solib_bp} {
fail $test
} else {
pass $test
}
}
-re "Stopped due to (spurious )?shared library event.*\r\n$gdb_prompt $" {
- if {$func == "_dl_debug_state"} {
+ if {$func == $solib_bp} {
if {$debug_state_count == 0} {
# First stop does not yet relocate the _start function
# descriptor on ppc64.
@@ -175,7 +182,7 @@ proc reach_1 {func command displacement}
fail $test_displacement
}
- if {$func == "_dl_debug_state"} {
+ if {$func == $solib_bp} {
gdb_test_no_output "set stop-on-solib-events 0"
}
}
@@ -357,7 +364,7 @@ proc test_attach {file displacement {rel
}
proc test_ld {file ifmain trynosym displacement} {
- global srcdir subdir gdb_prompt expect_out inferior_exited_re
+ global srcdir subdir gdb_prompt expect_out inferior_exited_re solib_bp
# First test normal `file'-command loaded $FILE with symbols.
@@ -385,9 +392,9 @@ proc test_ld {file ifmain trynosym displ
gdb_test_no_output "set args ${objdir}/${subdir}/$binfile_test" "set args OBJDIR/${subdir}/$binfile_test"
}
- reach "_dl_debug_state" "run" $displacement
+ reach $solib_bp "run" $displacement
- gdb_test "bt" "#0 +\[^\r\n\]*\\m(__GI_)?_dl_debug_state\\M.*" "dl bt"
+ gdb_test "bt" "#0 +\[^\r\n\]*\\m(__GI_)?$solib_bp\\M.*" "dl bt"
if $ifmain {
reach "main" continue "NONE"
@@ -399,7 +406,7 @@ proc test_ld {file ifmain trynosym displ
# Try re-run if the new PIE displacement takes effect.
gdb_test "kill" "" "kill" {Kill the program being debugged\? \(y or n\) } "y"
- reach "_dl_debug_state" "run" $displacement
+ reach $solib_bp "run" $displacement
if $ifmain {
test_core $file $displacement
@@ -431,7 +438,7 @@ proc test_ld {file ifmain trynosym displ
gdb_test "exec-file $file" "exec-file $escapedfile" "load"
if $ifmain {
- reach "_dl_debug_state" run $displacement
+ reach $solib_bp run $displacement
# Use two separate gdb_test_multiple statements to avoid timeouts due
# to slow processing of wildcard capturing long output
Index: gdb-7.6/gdb/testsuite/gdb.base/solib-corrupted.exp
===================================================================
--- gdb-7.6.orig/gdb/testsuite/gdb.base/solib-corrupted.exp 2013-06-10 14:29:24.816123941 +0200
+++ gdb-7.6/gdb/testsuite/gdb.base/solib-corrupted.exp 2013-06-10 14:30:18.086102375 +0200
@@ -36,6 +36,33 @@ if ![runto_main] {
return
}
+# With probes interface GDB no longer scans the inferior library list so its
+# corruption cannot be tested. There is no way to disable the probes
+# interface.
+
+set probes { init_start init_complete map_start reloc_complete unmap_start
+ unmap_complete }
+set test "info probes"
+gdb_test_multiple $test $test {
+ -re "^rtld\[ \t\]+(?:rtld_)?(\[a-z_\]+)\[ \t\]" {
+ set idx [lsearch -exact $probes $expect_out(1,string)]
+ if { $idx >= 0 } {
+ set probes [lreplace $probes $idx $idx]
+ }
+ exp_continue
+ }
+ -re "^\[^\r\n\]*\r\n" {
+ exp_continue
+ }
+ -re "^$gdb_prompt $" {
+ }
+}
+if { [llength $probes] == 0 } {
+ xfail $test
+ untested "GDB is using probes"
+ return
+}
+
gdb_test "info sharedlibrary" "From * To .*" "normal list"
# GDB checks there for matching L_PREV.
Index: gdb-7.6/gdb/testsuite/gdb.threads/dlopen-libpthread-lib.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6/gdb/testsuite/gdb.threads/dlopen-libpthread-lib.c 2013-06-10 14:30:18.086102375 +0200
@@ -0,0 +1,40 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2011-2013 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <pthread.h>
+#include <assert.h>
+
+static void *
+tfunc (void *arg)
+{
+ void (*notifyp) (void) = arg;
+
+ notifyp ();
+}
+
+void
+f (void (*notifyp) (void))
+{
+ pthread_t t;
+ int i;
+
+ i = pthread_create (&t, NULL, tfunc, notifyp);
+ assert (i == 0);
+
+ i = pthread_join (t, NULL);
+ assert (i == 0);
+}
Index: gdb-7.6/gdb/testsuite/gdb.threads/dlopen-libpthread.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6/gdb/testsuite/gdb.threads/dlopen-libpthread.c 2013-06-10 14:30:18.087102375 +0200
@@ -0,0 +1,46 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2011-2013 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <dlfcn.h>
+#include <stddef.h>
+#include <assert.h>
+
+static const char *volatile filename;
+
+static void
+notify (void)
+{
+ filename = NULL; /* notify-here */
+}
+
+int
+main (void)
+{
+ void *h;
+ void (*fp) (void (*) (void));
+
+ assert (filename != NULL);
+ h = dlopen (filename, RTLD_LAZY);
+ assert (h != NULL);
+
+ fp = dlsym (h, "f");
+ assert (fp != NULL);
+
+ fp (notify);
+
+ return 0;
+}
Index: gdb-7.6/gdb/testsuite/gdb.threads/dlopen-libpthread.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6/gdb/testsuite/gdb.threads/dlopen-libpthread.exp 2013-06-10 14:30:18.087102375 +0200
@@ -0,0 +1,74 @@
+# Copyright 2011-2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+if {![istarget *-linux*] || [skip_shlib_tests]} {
+ return 0
+}
+
+load_lib prelink-support.exp
+
+set testfile "dlopen-libpthread"
+set srcmainfile ${testfile}.c
+set srclibfile ${testfile}-lib.c
+set executable ${testfile}
+set binfile_lib ${objdir}/${subdir}/${executable}.so
+set binfile ${objdir}/${subdir}/${executable}
+set lib_dlopen [shlib_target_file ${executable}.so]
+
+# Use build_executable_own_libs as prelinked libpthread.so can produce false
+# PASS - it is OK if GDB processes it still before relocation.
+
+set relink_args [build_executable_own_libs ${testfile}.exp ${executable}.so $srclibfile {debug shlib_pthreads} no]
+if {$relink_args == "" || ![prelink_no $relink_args]
+ || [prepare_for_testing ${testfile}.exp ${executable} ${srcmainfile} {debug shlib_load}] } {
+ return -1
+}
+gdb_load_shlibs $binfile_lib
+
+if { ![runto_main] } {
+ return -1
+}
+
+set test "info probes all rtld rtld_map_complete"
+gdb_test_multiple $test $test {
+ -re "\[ \t\]rtld_map_complete\[ \t\]+0x\[0-9a-f\]+.*\r\n$gdb_prompt $" {
+ pass $test
+ }
+ -re "No probes matched\\.\r\n$gdb_prompt $" {
+ xfail $test
+ untested ${testfile}.exp
+ return
+ }
+}
+
+set test "libpthread.so not found"
+gdb_test_multiple "info sharedlibrary" $test {
+ -re "/libpthread\\.so.*\r\n$gdb_prompt $" {
+ fail $test
+ }
+ -re "/libc\\.so.*\r\n$gdb_prompt $" {
+ pass $test
+ }
+}
+
+gdb_test "set variable filename=\"$lib_dlopen\""
+
+gdb_breakpoint "notify"
+
+# The error was:
+# Cannot find new threads: generic error
+gdb_continue_to_breakpoint "notify" ".* notify-here .*"
+
+gdb_test "info sharedlibrary" {/libpthread\.so.*} "libpthread.so found"
Index: gdb-7.6/gdb/testsuite/lib/gdb.exp
===================================================================
--- gdb-7.6.orig/gdb/testsuite/lib/gdb.exp 2013-06-10 14:29:24.819123940 +0200
+++ gdb-7.6/gdb/testsuite/lib/gdb.exp 2013-06-10 14:30:44.654092140 +0200
@@ -4011,22 +4011,6 @@ proc build_executable_from_specs {testna
set binfile [standard_output_file $executable]
- set objects {}
- set i 0
- foreach {s local_options} $args {
- if { [gdb_compile "${srcdir}/${subdir}/${s}" "${binfile}${i}.o" object $local_options] != "" } {
- untested $testname
- return -1
- }
- lappend objects "${binfile}${i}.o"
- incr i
- }
-
- if { [gdb_compile $objects "${binfile}" executable $options] != "" } {
- untested $testname
- return -1
- }
-
set info_options ""
if { [lsearch -exact $options "c++"] >= 0 } {
set info_options "c++"
@@ -4034,6 +4018,42 @@ proc build_executable_from_specs {testna
if [get_compiler_info ${info_options}] {
return -1
}
+
+ set binfile [standard_output_file $executable]
+
+ set func gdb_compile
+ set func_index [lsearch -regexp $options {^(pthreads|shlib|shlib_pthreads)$}]
+ if {$func_index != -1} {
+ set func "${func}_[lindex $options $func_index]"
+ }
+
+ # gdb_compile_shlib and gdb_compile_shlib_pthreads do not use the 3rd
+ # parameter. They also requires $sources while gdb_compile and
+ # gdb_compile_pthreads require $objects. Moreover they ignore any options.
+ if [string match gdb_compile_shlib* $func] {
+ set sources_path {}
+ foreach {s local_options} $args {
+ lappend sources_path "${srcdir}/${subdir}/${s}"
+ }
+ set ret [$func $sources_path "${binfile}" $options]
+ } else {
+ set objects {}
+ set i 0
+ foreach {s local_options} $args {
+ if { [gdb_compile "${srcdir}/${subdir}/${s}" "${binfile}${i}.o" object $local_options] != "" } {
+ untested $testname
+ return -1
+ }
+ lappend objects "${binfile}${i}.o"
+ incr i
+ }
+ set ret [$func $objects "${binfile}" executable $options]
+ }
+ if { $ret != "" } {
+ untested $testname
+ return -1
+ }
+
return 0
}
Index: gdb-7.6/gdb/testsuite/lib/prelink-support.exp
===================================================================
--- gdb-7.6.orig/gdb/testsuite/lib/prelink-support.exp 2013-06-10 14:29:24.819123940 +0200
+++ gdb-7.6/gdb/testsuite/lib/prelink-support.exp 2013-06-10 14:30:18.089102374 +0200
@@ -95,8 +95,9 @@ proc file_copy {src dest} {
# Wrap function build_executable so that the resulting executable is fully
# self-sufficient (without dependencies on system libraries). Parameter
# INTERP may be used to specify a loader (ld.so) to be used that is
-# different from the default system one. Libraries on which the executable
-# depends are copied into directory DIR. Default DIR value to
+# different from the default system one. INTERP can be set to "no" if no ld.so
+# copy should be made. Libraries on which the executable depends are copied
+# into directory DIR. Default DIR value to
# `${objdir}/${subdir}/${EXECUTABLE}.d'.
#
# In case of success, return a string containing the arguments to be used
@@ -151,8 +152,15 @@ proc build_executable_own_libs {testname
if {$interp == ""} {
set interp_system [section_get $binfile .interp]
- set interp ${dir}/[file tail $interp_system]
- file_copy $interp_system $interp
+ if {$interp_system == ""} {
+ fail "$test could not find .interp"
+ } else {
+ set interp ${dir}/[file tail $interp_system]
+ file_copy $interp_system $interp
+ }
+ }
+ if {$interp == "no"} {
+ set interp ""
}
set dests {}
@@ -164,13 +172,19 @@ proc build_executable_own_libs {testname
# Do not lappend it so that "-rpath $dir" overrides any possible "-rpath"s
# specified by the caller to be able to link it for ldd" above.
- set options [linsert $options 0 "ldflags=-Wl,--dynamic-linker,$interp,-rpath,$dir"]
+ set options [linsert $options 0 "ldflags=-Wl,-rpath,$dir"]
+ if {$interp != ""} {
+ set options [linsert $options 0 "ldflags=-Wl,--dynamic-linker,$interp"]
+ }
if {[build_executable $testname $executable $sources $options] == -1} {
return ""
}
- set prelink_args "--dynamic-linker=$interp --ld-library-path=$dir $binfile $interp [concat $dests]"
+ set prelink_args "--ld-library-path=$dir $binfile [concat $dests]"
+ if {$interp != ""} {
+ set prelink_args "--dynamic-linker=$interp $prelink_args $interp"
+ }
return $prelink_args
}

View File

@ -1,415 +0,0 @@
http://sourceware.org/ml/gdb-cvs/2013-06/msg00020.html
### src/gdb/testsuite/ChangeLog 2013/06/04 13:23:31 1.3683
### src/gdb/testsuite/ChangeLog 2013/06/04 13:31:00 1.3684
## -1,3 +1,13 @@
+2013-06-04 Gary Benson <gbenson@redhat.com>
+
+ * gdb.base/break-probes.exp: New file.
+ * gdb.base/break-probes.c: Likewise.
+ * gdb.base/break-probes-solib.c: Likewise.
+ * gdb.base/info-shared.exp: New file.
+ * gdb.base/info-shared.c: Likewise.
+ * gdb.base/info-shared-solib1.c: Likewise.
+ * gdb.base/info-shared-solib2.c: Likewise.
+
2013-06-04 Jan Kratochvil <jan.kratochvil@redhat.com>
Gary Benson <gbenson@redhat.com>
--- src/gdb/testsuite/gdb.base/break-probes-solib.c
+++ src/gdb/testsuite/gdb.base/break-probes-solib.c 2013-06-10 12:15:11.548935413 +0000
@@ -0,0 +1,22 @@
+/* Copyright 2012-2013 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+
+int
+foo (int n)
+{
+ return n * n / 17;
+}
--- src/gdb/testsuite/gdb.base/break-probes.c
+++ src/gdb/testsuite/gdb.base/break-probes.c 2013-06-10 12:15:12.047717383 +0000
@@ -0,0 +1,30 @@
+/* Copyright 2012-2013 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <dlfcn.h>
+#include <assert.h>
+#include <stddef.h>
+
+int
+main (void)
+{
+ void *handle = dlopen (SHLIB_NAME, RTLD_LAZY);
+
+ assert (handle != NULL);
+
+ dlclose (handle);
+
+ return 0;
+}
--- src/gdb/testsuite/gdb.base/break-probes.exp
+++ src/gdb/testsuite/gdb.base/break-probes.exp 2013-06-10 12:15:12.620368040 +0000
@@ -0,0 +1,78 @@
+# Copyright 2012-2013 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+if { [skip_shlib_tests] } {
+ return 0
+}
+
+standard_testfile
+
+set libname $testfile-solib
+set srcfile_lib $srcdir/$subdir/$libname.c
+set binfile_lib [standard_output_file $libname.so]
+
+set normal_bp "_dl_debug_state"
+set probes_bp "dl_main"
+
+if { [gdb_compile_shlib $srcfile_lib $binfile_lib \
+ [list additional_flags=-fPIC]] != "" } {
+ untested "Could not compile $binfile_lib."
+ return -1
+}
+
+if { [prepare_for_testing $testfile.exp $testfile $srcfile \
+ [list additional_flags=-DSHLIB_NAME=\"$binfile_lib\" libs=-ldl]] } {
+ return -1
+}
+
+# Enable stop-on-solib-events
+gdb_test_no_output "set stop-on-solib-events 1"
+
+# Start the inferior and run to the first stop
+gdb_run_cmd
+gdb_test "" ".*Stopped due to shared library event.*"
+
+# XFAIL if we are not using probes
+set test "ensure using probes"
+set using_probes 0
+gdb_test_multiple "bt" $test {
+ -re "#0 +\[^\r\n\]*\\m(__GI_)?$normal_bp\\M.*$gdb_prompt $" {
+ untested "probes not present on this system"
+ }
+ -re "#0 +\[^\r\n\]*\\m(__GI_)?$probes_bp\\M.*$gdb_prompt $" {
+ pass $test
+ set using_probes 1
+ }
+}
+
+if { $using_probes } {
+ # Run til it loads our library
+ set test "run til our library loads"
+ set not_loaded_library 1
+ while { $not_loaded_library } {
+ set not_loaded_library 0
+ gdb_test_multiple "c" $test {
+ -re "Inferior loaded $binfile_lib\\M.*$gdb_prompt $" {
+ pass $test
+ }
+ -re "Stopped due to shared library event\\M.*$gdb_prompt $" {
+ set not_loaded_library 1
+ }
+ }
+ }
+
+ # Call something to ensure that relocation occurred
+ gdb_test "call foo(23)" "\\\$.* = 31.*\\\M.*"
+}
--- src/gdb/testsuite/gdb.base/info-shared-solib1.c
+++ src/gdb/testsuite/gdb.base/info-shared-solib1.c 2013-06-10 12:15:14.399129288 +0000
@@ -0,0 +1,24 @@
+/* Copyright 2012-2013 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+
+int
+foo (int n)
+{
+ printf ("foo %d\n", n);
+
+ return 0;
+}
--- src/gdb/testsuite/gdb.base/info-shared-solib2.c
+++ src/gdb/testsuite/gdb.base/info-shared-solib2.c 2013-06-10 12:15:14.930135742 +0000
@@ -0,0 +1,24 @@
+/* Copyright 2012-2013 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+
+int
+bar (int n)
+{
+ printf ("bar %d\n", n);
+
+ return 0;
+}
--- src/gdb/testsuite/gdb.base/info-shared.c
+++ src/gdb/testsuite/gdb.base/info-shared.c 2013-06-10 12:15:15.395474819 +0000
@@ -0,0 +1,52 @@
+/* Copyright 2012-2013 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <dlfcn.h>
+#include <assert.h>
+#include <stddef.h>
+
+void
+stop (void)
+{
+}
+
+int
+main (void)
+{
+ void *handle1, *handle2;
+ void (*func)(int);
+
+ handle1 = dlopen (SHLIB1_NAME, RTLD_LAZY);
+ assert (handle1 != NULL);
+ stop ();
+
+ handle2 = dlopen (SHLIB2_NAME, RTLD_LAZY);
+ assert (handle2 != NULL);
+ stop ();
+
+ func = (void (*)(int)) dlsym (handle1, "foo");
+ func (1);
+
+ func = (void (*)(int)) dlsym (handle2, "bar");
+ func (2);
+
+ dlclose (handle1);
+ stop ();
+
+ dlclose (handle2);
+ stop ();
+
+ return 0;
+}
--- src/gdb/testsuite/gdb.base/info-shared.exp
+++ src/gdb/testsuite/gdb.base/info-shared.exp 2013-06-10 12:15:15.891450285 +0000
@@ -0,0 +1,146 @@
+# Copyright 2012-2013 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+if { [skip_shlib_tests] } {
+ return 0
+}
+
+standard_testfile
+
+set lib1name $testfile-solib1
+set srcfile_lib1 $srcdir/$subdir/$lib1name.c
+set binfile_lib1 [standard_output_file $lib1name.so]
+set define1 -DSHLIB1_NAME=\"$binfile_lib1\"
+
+set lib2name $testfile-solib2
+set srcfile_lib2 $srcdir/$subdir/$lib2name.c
+set binfile_lib2 [standard_output_file $lib2name.so]
+set define2 -DSHLIB2_NAME=\"$binfile_lib2\"
+
+if { [gdb_compile_shlib $srcfile_lib1 $binfile_lib1 \
+ [list additional_flags=-fPIC]] != "" } {
+ untested "Could not compile $binfile_lib1."
+ return -1
+}
+
+if { [gdb_compile_shlib $srcfile_lib2 $binfile_lib2 \
+ [list additional_flags=-fPIC]] != "" } {
+ untested "Could not compile $binfile_lib2."
+ return -1
+}
+
+set cflags "$define1 $define2"
+if { [prepare_for_testing $testfile.exp $testfile $srcfile \
+ [list additional_flags=$cflags libs=-ldl]] } {
+ return -1
+}
+
+# Run "info sharedlibrary" and check for the presence or absence of
+# our libraries.
+proc check_info_shared { test expect1 expect2 } {
+ global lib1name
+ global lib2name
+ global gdb_prompt
+
+ set actual1 0
+ set actual2 0
+
+ gdb_test_multiple "info sharedlibrary" $test {
+ -re $lib1name {
+ set actual1 1
+ exp_continue
+ }
+ -re $lib2name {
+ set actual2 1
+ exp_continue
+ }
+ -re "\r\n$gdb_prompt $" {
+ if { $actual1 == $expect1 && $actual2 == $expect2 } {
+ pass $test
+ } else {
+ fail $test
+ }
+ }
+ }
+}
+
+# Start the inferior, and check neither of the libraries are loaded at
+# the start.
+if ![runto_main] {
+ return 0
+}
+check_info_shared "info sharedlibrary #1" 0 0
+
+# Set up breakpoints.
+gdb_breakpoint "stop"
+gdb_breakpoint "foo" allow-pending
+gdb_breakpoint "bar" allow-pending
+
+# Run to the first stop and check that only the first library is loaded.
+gdb_continue_to_breakpoint "library load #1" "stop .*"
+check_info_shared "info sharedlibrary #2" 1 0
+
+# Run to the second stop and check that both libraries are loaded.
+gdb_continue_to_breakpoint "library load #2" "stop .*"
+check_info_shared "info sharedlibrary #3" 1 1
+
+# Check that the next stop is in foo.
+gdb_continue_to_breakpoint "library function #1" "foo .*"
+
+# Check that the next stop is in bar.
+gdb_continue_to_breakpoint "library function #2" "bar .*"
+
+# Restart the inferior and make sure there are no breakpoint reset
+# errors. These can happen with the probes-based runtime linker
+# interface if the cache is not cleared correctly.
+set test "restart"
+gdb_run_cmd
+gdb_test_multiple "" $test {
+ -re {Start it from the beginning\? \(y or n\) $} {
+ send_gdb "y\n"
+ exp_continue
+ }
+ -re {Error in re-setting breakpoint} {
+ fail $test
+ }
+ -re "\r\n$gdb_prompt $" {
+ pass $test
+ }
+}
+
+# Check that neither library is loaded.
+check_info_shared "info sharedlibrary #4" 0 0
+
+# Run to the first stop and check that only the first library is loaded.
+gdb_continue_to_breakpoint "library load #3" "stop .*"
+check_info_shared "info sharedlibrary #5" 1 0
+
+# Run to the second stop and check that both libraries are loaded.
+gdb_continue_to_breakpoint "library load #4" "stop .*"
+check_info_shared "info sharedlibrary #6" 1 1
+
+# Check that the next stop is in foo.
+gdb_continue_to_breakpoint "library function #3" "foo .*"
+
+# Check that the next stop is in bar.
+gdb_continue_to_breakpoint "library function #4" "bar .*"
+
+# Run to the next stop and check that the first library has been unloaded.
+gdb_continue_to_breakpoint "library unload #1" "stop .*"
+check_info_shared "info sharedlibrary #7" 0 1
+
+# Run to the last stop and check that both libraries are gone.
+gdb_continue_to_breakpoint "library unload #2" "stop .*"
+check_info_shared "info sharedlibrary #8" 0 0

View File

@ -40,11 +40,11 @@ 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.5.91.20130407/gdb/Makefile.in Index: gdb-7.6.50.20130731-cvs/gdb/Makefile.in
=================================================================== ===================================================================
--- gdb-7.5.91.20130407.orig/gdb/Makefile.in 2013-04-11 16:52:51.000000000 +0200 --- gdb-7.6.50.20130731-cvs.orig/gdb/Makefile.in 2013-08-02 16:31:59.603674194 +0200
+++ gdb-7.5.91.20130407/gdb/Makefile.in 2013-04-11 16:53:59.199279388 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/Makefile.in 2013-08-02 16:32:08.260690156 +0200
@@ -1053,6 +1053,15 @@ install-only: install-gstack $(CONFIG_IN @@ -1070,6 +1070,15 @@ install-only: install-gstack $(CONFIG_IN
$(INSTALL_PROGRAM) gcore \ $(INSTALL_PROGRAM) gcore \
$(DESTDIR)$(bindir)/$$transformed_name; \ $(DESTDIR)$(bindir)/$$transformed_name; \
fi fi
@ -60,11 +60,11 @@ Index: gdb-7.5.91.20130407/gdb/Makefile.in
@$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do @$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
install-python: install-python:
Index: gdb-7.5.91.20130407/gdb/doc/gdb.texinfo Index: gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo
=================================================================== ===================================================================
--- gdb-7.5.91.20130407.orig/gdb/doc/gdb.texinfo 2013-04-11 16:53:00.000000000 +0200 --- gdb-7.6.50.20130731-cvs.orig/gdb/doc/gdb.texinfo 2013-08-02 16:31:59.616674218 +0200
+++ gdb-7.5.91.20130407/gdb/doc/gdb.texinfo 2013-04-11 16:55:07.004278842 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo 2013-08-02 16:32:08.271690176 +0200
@@ -17159,6 +17159,14 @@ There are currently some limitation on i @@ -17447,6 +17447,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.5.91.20130407/gdb/doc/gdb.texinfo
@node Symbol Errors @node Symbol Errors
@section Errors Reading Symbol Files @section Errors Reading Symbol Files
@@ -41730,6 +41738,7 @@ switch (die->tag) @@ -43044,6 +43052,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.5.91.20130407/gdb/doc/gdb.texinfo
@end menu @end menu
@node gdb man @node gdb man
@@ -42382,6 +42391,54 @@ gdb(1), @code{info -f gdb -n Startup} @@ -43696,6 +43705,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,10 +142,10 @@ Index: gdb-7.5.91.20130407/gdb/doc/gdb.texinfo
@smallexample @smallexample
info gdb info gdb
Index: gdb-7.5.91.20130407/gdb/gdb-add-index Index: gdb-7.6.50.20130731-cvs/gdb/gdb-add-index
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.5.91.20130407/gdb/gdb-add-index 2013-04-11 16:53:21.524279909 +0200 +++ gdb-7.6.50.20130731-cvs/gdb/gdb-add-index 2013-08-02 16:32:08.271690176 +0200
@@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
+#! /bin/sh +#! /bin/sh
+ +
@ -177,12 +177,12 @@ Index: gdb-7.5.91.20130407/gdb/gdb-add-index
+fi +fi
+ +
+exit 0 +exit 0
Index: gdb-7.5.91.20130407/gdb/doc/Makefile.in Index: gdb-7.6.50.20130731-cvs/gdb/doc/Makefile.in
=================================================================== ===================================================================
--- gdb-7.5.91.20130407.orig/gdb/doc/Makefile.in 2013-04-11 16:50:33.202286928 +0200 --- gdb-7.6.50.20130731-cvs.orig/gdb/doc/Makefile.in 2013-08-02 16:31:59.618674222 +0200
+++ gdb-7.5.91.20130407/gdb/doc/Makefile.in 2013-04-11 16:55:06.993279304 +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 @@ -177,7 +177,7 @@ POD2MAN5 = pod2man --center="GNU Develop
--release="gdb-`sed q $(srcdir)/../version.in`" --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
-MAN1S = gdb.1 gdbserver.1 gcore.1 -MAN1S = gdb.1 gdbserver.1 gcore.1
@ -190,7 +190,7 @@ Index: gdb-7.5.91.20130407/gdb/doc/Makefile.in
MAN5S = gdbinit.5 MAN5S = gdbinit.5
MANS = $(MAN1S) $(MAN5S) MANS = $(MAN1S) $(MAN5S)
@@ -626,6 +626,13 @@ gcore.1: $(GDB_DOC_FILES) @@ -630,6 +630,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,10 +1,10 @@
Index: gdb-7.5.50.20130118/gdb/dwarf2read.c Index: gdb-7.6.50.20130731-cvs/gdb/dwarf2read.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130118.orig/gdb/dwarf2read.c 2013-01-19 21:16:22.437961789 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/dwarf2read.c 2013-08-02 16:37:51.619241696 +0200
+++ gdb-7.5.50.20130118/gdb/dwarf2read.c 2013-01-19 21:24:22.242969266 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/dwarf2read.c 2013-08-02 16:38:16.159277461 +0200
@@ -15987,6 +15987,25 @@ new_symbol_full (struct die_info *die, s @@ -16654,6 +16654,25 @@ new_symbol_full (struct die_info *die, s
/* Cache this symbol's name and the name's demangled form (if any). */ /* Cache this symbol's name and the name's demangled form (if any). */
SYMBOL_SET_LANGUAGE (sym, cu->language); SYMBOL_SET_LANGUAGE (sym, cu->language, &objfile->objfile_obstack);
linkagename = dwarf2_physname (name, die, cu); linkagename = dwarf2_physname (name, die, cu);
+ +
+ /* Workaround for: + /* Workaround for:
@ -28,10 +28,10 @@ Index: gdb-7.5.50.20130118/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.5.50.20130118/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp 2013-01-19 21:23:09.119827963 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp 2013-08-02 16:37:51.620241697 +0200
@@ -0,0 +1,108 @@ @@ -0,0 +1,108 @@
+# Copyright (C) 2012 Free Software Foundation, Inc. +# Copyright (C) 2012 Free Software Foundation, Inc.
+ +

View File

@ -1,731 +0,0 @@
[PATCH] Full POWER8 binutils support
http://sourceware.org/ml/binutils/2013-05/msg00235.html
http://sourceware.org/ml/binutils-cvs/2013-05/msg00095.html
### src/opcodes/ChangeLog 2013/05/17 12:57:15 1.1964
### src/opcodes/ChangeLog 2013/05/21 01:36:46 1.1965
## -1,3 +1,28 @@
+2013-05-20 Peter Bergner <bergner@vnet.ibm.com>
+
+ * ppc-dis.c (powerpc_init_dialect): Set default dialect to power8.
+ * ppc-opc.c (BHRBE, ST, SIX, PS, SXL, VXPS_MASK, XX1RB_MASK,
+ XLS_MASK, PPCVSX2): New defines.
+ (powerpc_opcodes) <bcdadd., bcdsub., bctar, bctar, bctarl, clrbhrb,
+ fmrgew, fmrgow, lqarx, lxsiwax, lxsiwzx, lxsspx, mfbhrbe,
+ mffprd, mffprwz, mfvrd, mfvrwz, mfvsrd, mfvsrwz, msgclrp, msgsndp,
+ mtfprd, mtfprwa, mtfprwz, mtsle, mtvrd, mtvrwa, mtvrwz, mtvsrd,
+ mtvsrwa, mtvsrwz, pbt., rfebb, stqcx., stxsiwx, stxsspx,
+ vaddcuq, vaddecuq, vaddeuqm, vaddudm, vadduqm, vbpermq, vcipher,
+ vcipherlast, vclzb, vclzd, vclzh, vclzw, vcmpequd, vcmpequd.,
+ vcmpgtsd, vcmpgtsd., vcmpgtud, vcmpgtud., veqv, vgbbd, vmaxsd,
+ vmaxud, vminsd, vminud, vmrgew, vmrgow, vmulesw, vmuleuw, vmulosw,
+ vmulouw, vmuluwm, vnand, vncipher, vncipherlast, vorc, vpermxor,
+ vpksdss, vpksdus, vpkudum, vpkudus, vpmsumb, vpmsumd, vpmsumh,
+ vpmsumw, vpopcntb, vpopcntd, vpopcnth, vpopcntw, vrld, vsbox,
+ vshasigmad, vshasigmaw, vsld, vsrad, vsrd, vsubcuq, vsubecuq,
+ vsubeuqm, vsubudm, vsubuqm, vupkhsw, vupklsw, waitasec, xsaddsp,
+ xscvdpspn, xscvspdpn, xscvsxdsp, xscvuxdsp, xsdivsp, xsmaddasp,
+ xsmaddmsp, xsmsubasp, xsmsubmsp, xsmulsp, xsnmaddasp, xsnmaddmsp,
+ xsnmsubasp, xsnmsubmsp, xsresp, xsrsp, xsrsqrtesp, xssqrtsp,
+ xssubsp, xxleqv, xxlnand, xxlorc>: New instructions.
+ <lxvx, stxvx>: New extended mnemonics.
+
2013-05-17 Alan Modra <amodra@gmail.com>
* ia64-raw.tbl: Replace non-ASCII char.
--- src/opcodes/ppc-dis.c 2013/01/11 02:25:36 1.62
+++ src/opcodes/ppc-dis.c 2013/05/21 01:36:46 1.63
@@ -315,10 +315,7 @@
dialect = (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_VLE);
break;
default:
- dialect = (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_64
- | PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6
- | PPC_OPCODE_POWER7 | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX
- | PPC_OPCODE_ANY);
+ dialect = ppc_parse_cpu (dialect, &sticky, "power8") | PPC_OPCODE_ANY;
}
arg = info->disassembler_options;
--- src/opcodes/ppc-opc.c 2013/05/09 04:32:55 1.159
+++ src/opcodes/ppc-opc.c 2013/05/21 01:36:46 1.160
@@ -315,14 +315,18 @@
{ 0xfffc, 0, NULL, NULL,
PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DS },
- /* The DUIS field in a XFX form instruction, 10 bits unsigned imediate */
+ /* The DUIS or BHRBE fields in a XFX form instruction, 10 bits
+ unsigned imediate */
#define DUIS DS + 1
+#define BHRBE DUIS
{ 0x3ff, 11, NULL, NULL, 0 },
/* The E field in a wrteei instruction. */
/* And the W bit in the pair singles instructions. */
+ /* And the ST field in a VX form instruction. */
#define E DUIS + 1
#define PSW E
+#define ST E
{ 0x1, 15, NULL, NULL, 0 },
/* The FL1 field in a POWER SC form instruction. */
@@ -695,8 +699,16 @@
#define UIMM3 UIMM + 1
{ 0x7, 16, NULL, NULL, 0 },
+ /* The SIX field in a VX form instruction. */
+#define SIX UIMM3 + 1
+ { 0xf, 11, NULL, NULL, 0 },
+
+ /* The PS field in a VX form instruction. */
+#define PS SIX + 1
+ { 0x1, 9, NULL, NULL, 0 },
+
/* The SHB field in a VA form instruction. */
-#define SHB UIMM3 + 1
+#define SHB PS + 1
{ 0xf, 6, NULL, NULL, 0 },
/* The other UIMM field in a half word EVX form instruction. */
@@ -751,8 +763,12 @@
#define S SP + 1
{ 0x1, 20, NULL, NULL, 0 },
+ /* The S field in a XL form instruction. */
+#define SXL S + 1
+ { 0x1, 11, NULL, NULL, PPC_OPERAND_OPTIONAL },
+
/* SH field starting at bit position 16. */
-#define SH16 S + 1
+#define SH16 SXL + 1
/* The DCM and DGM fields in a Z form instruction. */
#define DCM SH16
#define DGM DCM
@@ -2325,6 +2341,9 @@
/* A VX_MASK with a UIMM2 field. */
#define VXUIMM2_MASK (VX_MASK | (0x7 << 18))
+/* A VX_MASK with a PS field. */
+#define VXPS_MASK (VX_MASK & ~(0x1 << 9))
+
/* A VA form instruction. */
#define VXA(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x03f))
@@ -2379,6 +2398,9 @@
/* The mask for an XX1 form instruction. */
#define XX1_MASK X (0x3f, 0x3ff)
+/* An XX1_MASK with the RB field fixed. */
+#define XX1RB_MASK (XX1_MASK | RB_MASK)
+
/* The mask for an XX2 form instruction. */
#define XX2_MASK (XX2 (0x3f, 0x1ff) | (0x1f << 16))
@@ -2516,6 +2538,9 @@
/* The mask for an XL form instruction. */
#define XL_MASK XLLK (0x3f, 0x3ff, 1)
+/* An XL_MASK with the RT, RA and RB fields fixed, but S bit clear. */
+#define XLS_MASK ((XL_MASK | RT_MASK | RA_MASK | RB_MASK) & ~(1 << 11))
+
/* An XL form instruction which explicitly sets the BO field. */
#define XLO(op, bo, xop, lk) \
(XLLK ((op), (xop), (lk)) | ((((unsigned long)(bo)) & 0x1f) << 21))
@@ -2699,6 +2724,7 @@
#define PPCVEC PPC_OPCODE_ALTIVEC
#define PPCVEC2 PPC_OPCODE_ALTIVEC2
#define PPCVSX PPC_OPCODE_VSX
+#define PPCVSX2 PPC_OPCODE_VSX
#define POWER PPC_OPCODE_POWER
#define POWER2 PPC_OPCODE_POWER | PPC_OPCODE_POWER2
#define PWR2COM PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_COMMON
@@ -2845,6 +2871,7 @@
{"vperm", VXA(4, 43), VXA_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB, VC}},
{"vsldoi", VXA(4, 44), VXASHB_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB, SHB}},
{"ps_sel", A (4, 23,0), A_MASK, PPCPS, PPCNONE, {FRT, FRA, FRC, FRB}},
+{"vpermxor", VXA(4, 45), VXA_MASK, PPCVEC2, PPCNONE, {VD, VA, VB, VC}},
{"vmaddfp", VXA(4, 46), VXA_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VC, VB}},
{"ps_sel.", A (4, 23,1), A_MASK, PPCPS, PPCNONE, {FRT, FRA, FRC, FRB}},
{"vnmsubfp", VXA(4, 47), VXA_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VC, VB}},
@@ -2863,6 +2890,10 @@
{"ps_nmadd", A (4, 31,0), A_MASK, PPCPS, PPCNONE, {FRT, FRA, FRC, FRB}},
{"ps_nmadd.", A (4, 31,1), A_MASK, PPCPS, PPCNONE, {FRT, FRA, FRC, FRB}},
{"ps_cmpo0", X (4, 32), X_MASK|(3<<21), PPCPS, PPCNONE, {BF, FRA, FRB}},
+{"vaddeuqm", VXA(4, 60), VXA_MASK, PPCVEC2, PPCNONE, {VD, VA, VB, VC}},
+{"vaddecuq", VXA(4, 61), VXA_MASK, PPCVEC2, PPCNONE, {VD, VA, VB, VC}},
+{"vsubeuqm", VXA(4, 62), VXA_MASK, PPCVEC2, PPCNONE, {VD, VA, VB, VC}},
+{"vsubecuq", VXA(4, 63), VXA_MASK, PPCVEC2, PPCNONE, {VD, VA, VB, VC}},
{"vadduhm", VX (4, 64), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vmaxuh", VX (4, 66), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vrlh", VX (4, 68), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
@@ -2886,6 +2917,8 @@
{"vmaxuw", VX (4, 130), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vrlw", VX (4, 132), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vcmpequw", VXR(4, 134,0), VXR_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
+{"vmulouw", VX (4, 136), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
+{"vmuluwm", VX (4, 137), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"vmrghw", VX (4, 140), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vpkuhus", VX (4, 142), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"ps_mr", XRC(4, 72,0), XRA_MASK, PPCPS, PPCNONE, {FRT, FRB}},
@@ -2893,12 +2926,17 @@
{"machhwsu", XO (4, 76,0,0),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"machhwsu.", XO (4, 76,0,1),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"ps_cmpo1", X (4, 96), X_MASK|(3<<21), PPCPS, PPCNONE, {BF, FRA, FRB}},
+{"vaddudm", VX (4, 192), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
+{"vmaxud", VX (4, 194), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
+{"vrld", VX (4, 196), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"vcmpeqfp", VXR(4, 198,0), VXR_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
+{"vcmpequd", VXR(4, 199,0), VXR_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"vpkuwus", VX (4, 206), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"machhws", XO (4, 108,0,0),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"machhws.", XO (4, 108,0,1),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"nmachhws", XO (4, 110,0,0),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"nmachhws.", XO (4, 110,0,1),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
+{"vadduqm", VX (4, 256), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"vmaxsb", VX (4, 258), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vslb", VX (4, 260), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vmulosb", VX (4, 264), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
@@ -2911,6 +2949,7 @@
{"mulchwu.", XRC(4, 136,1), X_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"macchwu", XO (4, 140,0,0),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"macchwu.", XO (4, 140,0,1),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
+{"vaddcuq", VX (4, 320), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"vmaxsh", VX (4, 322), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vslh", VX (4, 324), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vmulosh", VX (4, 328), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
@@ -2926,11 +2965,13 @@
{"vaddcuw", VX (4, 384), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vmaxsw", VX (4, 386), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vslw", VX (4, 388), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
+{"vmulosw", VX (4, 392), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"vexptefp", VX (4, 394), VXVA_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VB}},
{"vmrglw", VX (4, 396), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vpkshss", VX (4, 398), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"macchwsu", XO (4, 204,0,0),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"macchwsu.", XO (4, 204,0,1),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
+{"vmaxsd", VX (4, 450), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"vsl", VX (4, 452), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vcmpgefp", VXR(4, 454,0), VXR_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vlogefp", VX (4, 458), VXVA_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VB}},
@@ -3014,6 +3055,7 @@
{"evfsnabs", VX (4, 645), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA}},
{"evfsneg", VX (4, 646), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA}},
{"vcmpgtuw", VXR(4, 646,0), VXR_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
+{"vmuleuw", VX (4, 648), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"evfsmul", VX (4, 648), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"evfsdiv", VX (4, 649), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"vrfip", VX (4, 650), VXVA_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VB}},
@@ -3039,11 +3081,13 @@
{"cput", APU(4, 348,0), APU_RT_MASK, PPC405, PPCNONE, {RA, FSL}},
{"efsadd", VX (4, 704), VX_MASK, PPCEFS|PPCVLE, PPCNONE, {RS, RA, RB}},
{"efssub", VX (4, 705), VX_MASK, PPCEFS|PPCVLE, PPCNONE, {RS, RA, RB}},
+{"vminud", VX (4, 706), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"efsabs", VX (4, 708), VX_MASK, PPCEFS|PPCVLE, PPCNONE, {RS, RA}},
{"vsr", VX (4, 708), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"efsnabs", VX (4, 709), VX_MASK, PPCEFS|PPCVLE, PPCNONE, {RS, RA}},
{"efsneg", VX (4, 710), VX_MASK, PPCEFS|PPCVLE, PPCNONE, {RS, RA}},
{"vcmpgtfp", VXR(4, 710,0), VXR_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
+{"vcmpgtud", VXR(4, 711,0), VXR_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"efsmul", VX (4, 712), VX_MASK, PPCEFS|PPCVLE, PPCNONE, {RS, RA, RB}},
{"efsdiv", VX (4, 713), VX_MASK, PPCEFS|PPCVLE, PPCNONE, {RS, RA, RB}},
{"vrfim", VX (4, 714), VXVA_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VB}},
@@ -3163,12 +3207,16 @@
{"vminsw", VX (4, 898), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vsraw", VX (4, 900), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vcmpgtsw", VXR(4, 902,0), VXR_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
+{"vmulesw", VX (4, 904), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"vctuxs", VX (4, 906), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VB, UIMM}},
{"vcfpuxws", VX (4, 906), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VB, UIMM}},
{"vspltisw", VX (4, 908), VXVB_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, SIMM}},
{"maclhwsu", XO (4, 460,0,0),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"maclhwsu.", XO (4, 460,0,1),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
+{"vminsd", VX (4, 962), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
+{"vsrad", VX (4, 964), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"vcmpbfp", VXR(4, 966,0), VXR_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
+{"vcmpgtsd", VXR(4, 967,0), VXR_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"vctsxs", VX (4, 970), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VB, UIMM}},
{"vcfpsxws", VX (4, 970), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VB, UIMM}},
{"vupklpx", VX (4, 974), VXVA_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VB}},
@@ -3177,6 +3225,7 @@
{"nmaclhws", XO (4, 494,0,0),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"nmaclhws.", XO (4, 494,0,1),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"vsububm", VX (4,1024), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
+{"bcdadd.", VX (4,1025), VXPS_MASK, PPCVEC2, PPCNONE, {VD, VA, VB, PS}},
{"vavgub", VX (4,1026), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vabsdub", VX (4,1027), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"evmhessf", VX (4,1027), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
@@ -3185,6 +3234,7 @@
{"udi0fcm.", APU(4, 515,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"udi0fcm", APU(4, 515,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"evmhossf", VX (4,1031), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
+{"vpmsumb", VX (4,1032), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"evmheumi", VX (4,1032), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"evmhesmi", VX (4,1033), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"vmaxfp", VX (4,1034), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
@@ -3206,6 +3256,7 @@
{"evmhosmia", VX (4,1069), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"evmhosmfa", VX (4,1071), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"vsubuhm", VX (4,1088), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
+{"bcdsub.", VX (4,1089), VXPS_MASK, PPCVEC2, PPCNONE, {VD, VA, VB, PS}},
{"vavguh", VX (4,1090), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"vabsduh", VX (4,1091), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"vandc", VX (4,1092), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
@@ -3213,11 +3264,13 @@
{"udi1fcm.", APU(4, 547,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"udi1fcm", APU(4, 547,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"evmwhssf", VX (4,1095), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
+{"vpmsumh", VX (4,1096), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"evmwlumi", VX (4,1096), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"vminfp", VX (4,1098), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"evmwhumi", VX (4,1100), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"vsro", VX (4,1100), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"evmwhsmi", VX (4,1101), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
+{"vpkudum", VX (4,1102), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"evmwhsmf", VX (4,1103), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"evmwssf", VX (4,1107), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"machhwo", XO (4, 44,1,0),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
@@ -3243,6 +3296,7 @@
{"vabsduw", VX (4,1155), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"vmr", VX (4,1156), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VBA}},
{"vor", VX (4,1156), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
+{"vpmsumw", VX (4,1160), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"vcmpequw.", VXR(4, 134,1), VXR_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"udi2fcm.", APU(4, 579,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"udi2fcm", APU(4, 579,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
@@ -3250,6 +3304,7 @@
{"machhwsuo.", XO (4, 76,1,1),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"ps_merge10", XOPS(4,592,0), XOPS_MASK, PPCPS, PPCNONE, {FRT, FRA, FRB}},
{"ps_merge10.", XOPS(4,592,1), XOPS_MASK, PPCPS, PPCNONE, {FRT, FRA, FRB}},
+{"vsubudm", VX (4,1216), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"evaddusiaaw", VX (4,1216), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA}},
{"evaddssiaaw", VX (4,1217), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA}},
{"evsubfusiaaw",VX (4,1218), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA}},
@@ -3259,18 +3314,22 @@
{"evdivws", VX (4,1222), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"vcmpeqfp.", VXR(4, 198,1), VXR_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"udi3fcm.", APU(4, 611,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
+{"vcmpequd.", VXR(4, 199,1), VXR_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"udi3fcm", APU(4, 611,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"evdivwu", VX (4,1223), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
+{"vpmsumd", VX (4,1224), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"evaddumiaaw", VX (4,1224), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA}},
{"evaddsmiaaw", VX (4,1225), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA}},
{"evsubfumiaaw",VX (4,1226), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA}},
{"evsubfsmiaaw",VX (4,1227), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA}},
+{"vpkudus", VX (4,1230), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"machhwso", XO (4, 108,1,0),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"machhwso.", XO (4, 108,1,1),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"nmachhwso", XO (4, 110,1,0),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"nmachhwso.", XO (4, 110,1,1),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"ps_merge11", XOPS(4,624,0), XOPS_MASK, PPCPS, PPCNONE, {FRT, FRA, FRB}},
{"ps_merge11.", XOPS(4,624,1), XOPS_MASK, PPCPS, PPCNONE, {FRT, FRA, FRB}},
+{"vsubuqm", VX (4,1280), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"evmheusiaaw", VX (4,1280), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"evmhessiaaw", VX (4,1281), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"vavgsb", VX (4,1282), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
@@ -3283,8 +3342,11 @@
{"udi4fcm", APU(4, 643,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"evmhossfaaw", VX (4,1287), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"evmheumiaaw", VX (4,1288), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
+{"vcipher", VX (4,1288), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
+{"vcipherlast", VX (4,1289), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"evmhesmiaaw", VX (4,1289), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"evmhesmfaaw", VX (4,1291), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
+{"vgbbd", VX (4,1292), VXVA_MASK, PPCVEC2, PPCNONE, {VD, VB}},
{"evmhoumiaaw", VX (4,1292), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"evmhosmiaaw", VX (4,1293), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"evmhosmfaaw", VX (4,1295), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
@@ -3296,13 +3358,19 @@
{"evmhogumiaa", VX (4,1324), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"evmhogsmiaa", VX (4,1325), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"evmhogsmfaa", VX (4,1327), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
+{"vsubcuq", VX (4,1344), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"evmwlusiaaw", VX (4,1344), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"evmwlssiaaw", VX (4,1345), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"vavgsh", VX (4,1346), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
+{"vorc", VX (4,1348), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"udi5fcm.", APU(4, 675,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"udi5fcm", APU(4, 675,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
+{"vncipher", VX (4,1352), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"evmwlumiaaw", VX (4,1352), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
+{"vncipherlast",VX (4,1353), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"evmwlsmiaaw", VX (4,1353), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
+{"vbpermq", VX (4,1356), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
+{"vpksdus", VX (4,1358), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"evmwssfaa", VX (4,1363), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"macchwo", XO (4, 172,1,0),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"evmwumiaa", VX (4,1368), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
@@ -3316,6 +3384,7 @@
{"evmhessianw", VX (4,1409), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"vavgsw", VX (4,1410), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"evmhessfanw", VX (4,1411), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
+{"vnand", VX (4,1412), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"evmhousianw", VX (4,1412), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"evmhossianw", VX (4,1413), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"udi6fcm.", APU(4, 707,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
@@ -3337,11 +3406,14 @@
{"evmhogsmfan", VX (4,1455), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"evmwlusianw", VX (4,1472), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"evmwlssianw", VX (4,1473), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
+{"vsld", VX (4,1476), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"vcmpgefp.", VXR(4, 454,1), VXR_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"udi7fcm.", APU(4, 739,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
{"udi7fcm", APU(4, 739,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
+{"vsbox", VX (4,1480), VXVB_MASK, PPCVEC2, PPCNONE, {VD, VA}},
{"evmwlumianw", VX (4,1480), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"evmwlsmianw", VX (4,1481), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
+{"vpksdss", VX (4,1486), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"evmwssfan", VX (4,1491), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"macchwso", XO (4, 236,1,0),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"evmwumian", VX (4,1496), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
@@ -3362,15 +3434,25 @@
{"vsum4shs", VX (4,1608), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"udi9fcm.", APU(4, 804,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"udi9fcm", APU(4, 804,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
+{"vupkhsw", VX (4,1614), VXVA_MASK, PPCVEC2, PPCNONE, {VD, VB}},
{"vsubuws", VX (4,1664), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
+{"vshasigmaw", VX (4,1666), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, ST, SIX}},
+{"veqv", VX (4,1668), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"vcmpgtuw.", VXR(4, 646,1), VXR_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"udi10fcm.", APU(4, 835,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"udi10fcm", APU(4, 835,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"vsum2sws", VX (4,1672), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
+{"vmrgow", VX (4,1676), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
+{"vshasigmad", VX (4,1730), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, ST, SIX}},
+{"vsrd", VX (4,1732), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"vcmpgtfp.", VXR(4, 710,1), VXR_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"udi11fcm.", APU(4, 867,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
+{"vcmpgtud.", VXR(4, 711,1), VXR_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"udi11fcm", APU(4, 867,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
+{"vupklsw", VX (4,1742), VXVA_MASK, PPCVEC2, PPCNONE, {VD, VB}},
{"vsubsbs", VX (4,1792), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
+{"vclzb", VX (4,1794), VXVA_MASK, PPCVEC2, PPCNONE, {VD, VB}},
+{"vpopcntb", VX (4,1795), VXVA_MASK, PPCVEC2, PPCNONE, {VD, VB}},
{"vcmpgtsb.", VXR(4, 774,1), VXR_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"udi12fcm.", APU(4, 899,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"udi12fcm", APU(4, 899,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
@@ -3378,6 +3460,8 @@
{"maclhwuo", XO (4, 396,1,0),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"maclhwuo.", XO (4, 396,1,1),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"vsubshs", VX (4,1856), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
+{"vclzh", VX (4,1858), VXVA_MASK, PPCVEC2, PPCNONE, {VD, VB}},
+{"vpopcnth", VX (4,1859), VXVA_MASK, PPCVEC2, PPCNONE, {VD, VB}},
{"vcmpgtsh.", VXR(4, 838,1), VXR_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"udi13fcm.", APU(4, 931,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"udi13fcm", APU(4, 931,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
@@ -3386,14 +3470,20 @@
{"nmaclhwo", XO (4, 430,1,0),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"nmaclhwo.", XO (4, 430,1,1),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"vsubsws", VX (4,1920), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
+{"vclzw", VX (4,1922), VXVA_MASK, PPCVEC2, PPCNONE, {VD, VB}},
+{"vpopcntw", VX (4,1923), VXVA_MASK, PPCVEC2, PPCNONE, {VD, VB}},
{"vcmpgtsw.", VXR(4, 902,1), VXR_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
{"udi14fcm.", APU(4, 963,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"udi14fcm", APU(4, 963,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"vsumsws", VX (4,1928), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
+{"vmrgew", VX (4,1932), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"maclhwsuo", XO (4, 460,1,0),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"maclhwsuo.", XO (4, 460,1,1),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
+{"vclzd", VX (4,1986), VXVA_MASK, PPCVEC2, PPCNONE, {VD, VB}},
+{"vpopcntd", VX (4,1987), VXVA_MASK, PPCVEC2, PPCNONE, {VD, VB}},
{"vcmpbfp.", VXR(4, 966,1), VXR_MASK, PPCVEC, PPCNONE, {VD, VA, VB}},
{"udi15fcm.", APU(4, 995,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
+{"vcmpgtsd.", VXR(4, 967,1), VXR_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}},
{"udi15fcm", APU(4, 995,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
{"maclhwso", XO (4, 492,1,0),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
{"maclhwso.", XO (4, 492,1,1),XO_MASK, MULHW|PPCVLE, PPCNONE, {RT, RA, RB}},
@@ -3965,6 +4055,8 @@
{"crandc", XL(19,129), XL_MASK, COM, PPCNONE, {BT, BA, BB}},
+{"rfebb", XL(19,146), XLS_MASK, POWER8, PPCNONE, {SXL}},
+
{"isync", XL(19,150), 0xffffffff, PPCCOM, PPCNONE, {0}},
{"ics", XL(19,150), 0xffffffff, PWRCOM, PPCNONE, {0}},
@@ -4148,6 +4240,13 @@
{"bcctrl", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCNONE, {BO, BI, BH}},
{"bccl", XLLK(19,528,1), XLBB_MASK, PWRCOM, PPCNONE, {BO, BI}},
+{"bctar-", XLYLK(19,560,0,0), XLYBB_MASK, POWER8, PPCNONE, {BOE, BI}},
+{"bctarl-", XLYLK(19,560,0,1), XLYBB_MASK, POWER8, PPCNONE, {BOE, BI}},
+{"bctar+", XLYLK(19,560,1,0), XLYBB_MASK, POWER8, PPCNONE, {BOE, BI}},
+{"bctarl+", XLYLK(19,560,1,1), XLYBB_MASK, POWER8, PPCNONE, {BOE, BI}},
+{"bctar", XLLK(19,560,0), XLBH_MASK, POWER8, PPCNONE, {BO, BI, BH}},
+{"bctarl", XLLK(19,560,1), XLBH_MASK, POWER8, PPCNONE, {BO, BI, BH}},
+
{"rlwimi", M(20,0), M_MASK, PPCCOM, PPCNONE, {RA, RS, SH, MBE, ME}},
{"rlimi", M(20,0), M_MASK, PWRCOM, PPCNONE, {RA, RS, SH, MBE, ME}},
@@ -4276,6 +4375,8 @@
{"mulhwu", XO(31,11,0,0), XO_MASK, PPC|PPCVLE, PPCNONE, {RT, RA, RB}},
{"mulhwu.", XO(31,11,0,1), XO_MASK, PPC|PPCVLE, PPCNONE, {RT, RA, RB}},
+{"lxsiwzx", X(31,12), XX1_MASK, PPCVSX2, PPCNONE, {XT6, RA0, RB}},
+
{"isellt", X(31,15), X_MASK, PPCISEL, PPCNONE, {RT, RA0, RB}},
{"tlbilxlpid", XTO(31,18,0), XTO_MASK, E500MC|PPCA2, PPCNONE, {0}},
@@ -4316,6 +4417,9 @@
{"maskg.", XRC(31,29,1), X_MASK, M601, PPCA2, {RA, RS, RB}},
{"ldepx", X(31,29), X_MASK, E500MC|PPCA2|PPCVLE, PPCNONE, {RT, RA0, RB}},
+
+{"waitasec", X(31,30), XRTRARB_MASK,POWER8, PPCNONE, {0}},
+
{"lwepx", X(31,31), X_MASK, E500MC|PPCA2|PPCVLE, PPCNONE, {RT, RA0, RB}},
{"cmplw", XOPL(31,32,0), XCMPL_MASK, PPCCOM|PPCVLE, PPCNONE, {OBF, RA, RB}},
@@ -4335,6 +4439,8 @@
{"addg6s", XO(31,74,0,0), XO_MASK, POWER6, PPCNONE, {RT, RA, RB}},
+{"lxsiwax", X(31,76), XX1_MASK, PPCVSX2, PPCNONE, {XT6, RA0, RB}},
+
{"iseleq", X(31,79), X_MASK, PPCISEL, PPCNONE, {RT, RA0, RB}},
{"isel", XISEL(31,15), XISEL_MASK, PPCISEL|TITAN|PPCVLE, PPCNONE, {RT, RA0, RB, CRB}},
@@ -4344,6 +4450,9 @@
{"subf.", XO(31,40,0,1), XO_MASK, PPC|PPCVLE, PPCNONE, {RT, RA, RB}},
{"sub.", XO(31,40,0,1), XO_MASK, PPC|PPCVLE, PPCNONE, {RT, RB, RA}},
+{"mfvsrd", X(31,51), XX1RB_MASK, PPCVSX2, PPCNONE, {RA, XS6}},
+{"mffprd", X(31,51), XX1RB_MASK|1, PPCVSX2, PPCNONE, {RA, FRS}},
+{"mfvrd", X(31,51)|1, XX1RB_MASK|1, PPCVSX2, PPCNONE, {RA, VS}},
{"eratilx", X(31,51), X_MASK, PPCA2, PPCNONE, {ERAT_T, RA, RB}},
{"lbarx", X(31,52), XEH_MASK, POWER7|PPCVLE, PPCNONE, {RT, RA0, RB, EH}},
@@ -4421,6 +4530,10 @@
{"mtsrdin", X(31,114), XRA_MASK, PPC64, PPCNONE, {RS, RB}},
+{"mffprwz", X(31,115), XX1RB_MASK|1, PPCVSX2, PPCNONE, {RA, FRS}},
+{"mfvrwz", X(31,115)|1, XX1RB_MASK|1, PPCVSX2, PPCNONE, {RA, VS}},
+{"mfvsrwz", X(31,115), XX1RB_MASK, PPCVSX2, PPCNONE, {RA, XS6}},
+
{"lharx", X(31,116), XEH_MASK, POWER7|PPCVLE, PPCNONE, {RT, RA0, RB, EH}},
{"clf", X(31,118), XTO_MASK, POWER, PPCNONE, {RA, RB}},
@@ -4453,6 +4566,9 @@
{"adde.", XO(31,138,0,1), XO_MASK, PPCCOM|PPCVLE, PPCNONE, {RT, RA, RB}},
{"ae.", XO(31,138,0,1), XO_MASK, PWRCOM, PPCNONE, {RT, RA, RB}},
+{"stxsiwx", X(31,140), XX1_MASK, PPCVSX2, PPCNONE, {XS6, RA0, RB}},
+
+{"msgsndp", XRTRA(31,142,0,0), XRTRA_MASK, POWER8, PPCNONE, {RB}},
{"dcbtstlse", X(31,142), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}},
{"mtcr", XFXM(31,144,0xff,0), XRARB_MASK, COM, PPCNONE, {RS}},
@@ -4461,6 +4577,8 @@
{"mtmsr", X(31,146), XRLARB_MASK, COM|PPCVLE, PPCNONE, {RS, A_L}},
+{"mtsle", X(31,147), XRTLRARB_MASK, POWER8, PPCNONE, {L}},
+
{"eratsx", XRC(31,147,0), X_MASK, PPCA2, PPCNONE, {RT, RA0, RB}},
{"eratsx.", XRC(31,147,1), X_MASK, PPCA2, PPCNONE, {RT, RA0, RB}},
@@ -4490,14 +4608,19 @@
{"stvehx", X(31,167), X_MASK, PPCVEC, PPCNONE, {VS, RA0, RB}},
{"sthfcmx", APU(31,167,0), APU_MASK, PPC405, PPCNONE, {FCRT, RA, RB}},
+{"msgclrp", XRTRA(31,174,0,0), XRTRA_MASK, POWER8, PPCNONE, {RB}},
{"dcbtlse", X(31,174), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}},
{"mtmsrd", X(31,178), XRLARB_MASK, PPC64, PPCNONE, {RS, A_L}},
+{"mtvsrd", X(31,179), XX1RB_MASK, PPCVSX2, PPCNONE, {XT6, RA}},
+{"mtfprd", X(31,179), XX1RB_MASK|1, PPCVSX2, PPCNONE, {FRT, RA}},
+{"mtvrd", X(31,179)|1, XX1RB_MASK|1, PPCVSX2, PPCNONE, {VD, RA}},
{"eratre", X(31,179), X_MASK, PPCA2, PPCNONE, {RT, RA, WS}},
{"stdux", X(31,181), X_MASK, PPC64|PPCVLE, PPCNONE, {RS, RAS, RB}},
+{"stqcx.", XRC(31,182,1), X_MASK, POWER8, PPCNONE, {RSQ, RA0, RB}},
{"wchkall", X(31,182), X_MASK, PPCA2, PPCNONE, {OBF}},
{"stwux", X(31,183), X_MASK, PPCCOM|PPCVLE, PPCNONE, {RS, RAS, RB}},
@@ -4527,6 +4650,9 @@
{"mtsr", X(31,210), XRB_MASK|(1<<20), COM, NON32, {SR, RS}},
+{"mtfprwa", X(31,211), XX1RB_MASK|1, PPCVSX2, PPCNONE, {FRT, RA}},
+{"mtvrwa", X(31,211)|1, XX1RB_MASK|1, PPCVSX2, PPCNONE, {VD, RA}},
+{"mtvsrwa", X(31,211), XX1RB_MASK, PPCVSX2, PPCNONE, {XT6, RA}},
{"eratwe", X(31,211), X_MASK, PPCA2, PPCNONE, {RS, RA, WS}},
{"ldawx.", XRC(31,212,1), X_MASK, PPCA2, PPCNONE, {RT, RA0, RB}},
@@ -4571,6 +4697,10 @@
{"mtsrin", X(31,242), XRA_MASK, PPC, NON32, {RS, RB}},
{"mtsri", X(31,242), XRA_MASK, POWER, NON32, {RS, RB}},
+{"mtfprwz", X(31,243), XX1RB_MASK|1, PPCVSX2, PPCNONE, {FRT, RA}},
+{"mtvrwz", X(31,243)|1, XX1RB_MASK|1, PPCVSX2, PPCNONE, {VD, RA}},
+{"mtvsrwz", X(31,243), XX1RB_MASK, PPCVSX2, PPCNONE, {XT6, RA}},
+
{"dcbtstt", XRT(31,246,0x10), XRT_MASK, POWER7, PPCNONE, {RA0, RB}},
{"dcbtst", X(31,246), X_MASK, POWER4, PPCNONE, {RA0, RB, CT}},
{"dcbtst", X(31,246), X_MASK, PPC|PPCVLE, POWER4, {CT, RA0, RB}},
@@ -4608,6 +4738,8 @@
{"mfapidi", X(31,275), X_MASK, BOOKE, TITAN, {RT, RA}},
+{"lqarx", X(31,276), XEH_MASK, POWER8, PPCNONE, {RTQ, RAX, RBX, EH}},
+
{"lscbx", XRC(31,277,0), X_MASK, M601, PPCNONE, {RT, RA, RB}},
{"lscbx.", XRC(31,277,1), X_MASK, M601, PPCNONE, {RT, RA, RB}},
@@ -4629,6 +4761,8 @@
{"lvexhx", X(31,293), X_MASK, PPCVEC2, PPCNONE, {VD, RA0, RB}},
{"lvepx", X(31,295), X_MASK, PPCVEC2|PPCVLE, PPCNONE, {VD, RA0, RB}},
+{"mfbhrbe", X(31,302), X_MASK, POWER8, PPCNONE, {RT, BHRBE}},
+
{"tlbie", X(31,306), XRTLRA_MASK, PPC, TITAN, {RB, L}},
{"tlbi", X(31,306), XRT_MASK, POWER, PPCNONE, {RA0, RB}},
@@ -4937,6 +5071,8 @@
{"slbmte", X(31,402), XRA_MASK, PPC64, PPCNONE, {RS, RB}},
+{"pbt.", XRC(31,404,1), X_MASK, POWER8, PPCNONE, {RS, RA0, RB}},
+
{"icswx", XRC(31,406,0), X_MASK, POWER7|PPCA2, PPCNONE, {RS, RA, RB}},
{"icswx.", XRC(31,406,1), X_MASK, POWER7|PPCA2, PPCNONE, {RS, RA, RB}},
@@ -4958,6 +5094,8 @@
{"divwe", XO(31,427,0,0), XO_MASK, POWER7|PPCA2, PPCNONE, {RT, RA, RB}},
{"divwe.", XO(31,427,0,1), XO_MASK, POWER7|PPCA2, PPCNONE, {RT, RA, RB}},
+{"clrbhrb", X(31,430), 0xffffffff, POWER8, PPCNONE, {0}},
+
{"slbie", X(31,434), XRTRA_MASK, PPC64, PPCNONE, {RB}},
{"ecowx", X(31,438), X_MASK, PPC, TITAN, {RT, RA0, RB}},
@@ -5246,6 +5384,8 @@
{"addco.", XO(31,10,1,1), XO_MASK, PPCCOM|PPCVLE, PPCNONE, {RT, RA, RB}},
{"ao.", XO(31,10,1,1), XO_MASK, PWRCOM, PPCNONE, {RT, RA, RB}},
+{"lxsspx", X(31,524), XX1_MASK, PPCVSX2, PPCNONE, {XT6, RA0, RB}},
+
{"clcs", X(31,531), XRB_MASK, M601, PPCNONE, {RT, RA}},
{"ldbrx", X(31,532), X_MASK, CELL|POWER7|PPCA2, PPCNONE, {RT, RA0, RB}},
@@ -5340,6 +5480,8 @@
{"stvlx", X(31,647), X_MASK, CELL, PPCNONE, {VS, RA0, RB}},
{"stbfcmux", APU(31,647,0), APU_MASK, PPC405, PPCNONE, {FCRT, RA, RB}},
+{"stxsspx", X(31,652), XX1_MASK, PPCVSX2, PPCNONE, {XS6, RA0, RB}},
+
{"tbegin.", XRC(31,654,1), XRTLRARB_MASK,PPCHTM, PPCNONE, {HTM_R}},
{"subfeo", XO(31,136,1,0), XO_MASK, PPCCOM|PPCVLE, PPCNONE, {RT, RA, RB}},
@@ -5525,6 +5667,7 @@
{"divo.", XO(31,331,1,1), XO_MASK, M601, PPCNONE, {RT, RA, RB}},
{"lxvd2x", X(31,844), XX1_MASK, PPCVSX, PPCNONE, {XT6, RA0, RB}},
+{"lxvx", X(31,844), XX1_MASK, PPCVSX, PPCNONE, {XT6, RA0, RB}},
{"tabortwci.", XRC(31,846,1), X_MASK, PPCHTM, PPCNONE, {TO, RA, HTM_SI}},
@@ -5636,6 +5779,7 @@
{"divwuo.", XO(31,459,1,1), XO_MASK, PPC|PPCVLE, PPCNONE, {RT, RA, RB}},
{"stxvd2x", X(31,972), XX1_MASK, PPCVSX, PPCNONE, {XS6, RA0, RB}},
+{"stxvx", X(31,972), XX1_MASK, PPCVSX, PPCNONE, {XS6, RA0, RB}},
{"tlbld", X(31,978), XRTRA_MASK, PPC, PPC403|BOOKE|PPCA2|PPC476, {RB}},
{"tlbwehi", XTLB(31,978,0), XTLB_MASK, PPC403, PPCNONE, {RT, RA}},
@@ -5868,14 +6012,25 @@
{"fcfidus", XRC(59,974,0), XRA_MASK, POWER7|PPCA2, PPCNONE, {FRT, FRB}},
{"fcfidus.", XRC(59,974,1), XRA_MASK, POWER7|PPCA2, PPCNONE, {FRT, FRB}},
+{"xsaddsp", XX3(60,0), XX3_MASK, PPCVSX2, PPCNONE, {XT6, XA6, XB6}},
+{"xsmaddasp", XX3(60,1), XX3_MASK, PPCVSX2, PPCNONE, {XT6, XA6, XB6}},
{"xxsldwi", XX3(60,2), XX3SHW_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6, SHW}},
{"xxsel", XX4(60,3), XX4_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6, XC6}},
+{"xssubsp", XX3(60,8), XX3_MASK, PPCVSX2, PPCNONE, {XT6, XA6, XB6}},
+{"xsmaddmsp", XX3(60,9), XX3_MASK, PPCVSX2, PPCNONE, {XT6, XA6, XB6}},
{"xxspltd", XX3(60,10), XX3DM_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6S, DMEX}},
{"xxmrghd", XX3(60,10), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
{"xxswapd", XX3(60,10)|(2<<8), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6S}},
{"xxmrgld", XX3(60,10)|(3<<8), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
{"xxpermdi", XX3(60,10), XX3DM_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6, DM}},
+{"xsrsqrtesp", XX2(60,10), XX2_MASK, PPCVSX2, PPCNONE, {XT6, XB6}},
+{"xssqrtsp", XX2(60,11), XX2_MASK, PPCVSX2, PPCNONE, {XT6, XB6}},
+{"xsmulsp", XX3(60,16), XX3_MASK, PPCVSX2, PPCNONE, {XT6, XA6, XB6}},
+{"xsmsubasp", XX3(60,17), XX3_MASK, PPCVSX2, PPCNONE, {XT6, XA6, XB6}},
{"xxmrghw", XX3(60,18), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
+{"xsdivsp", XX3(60,24), XX3_MASK, PPCVSX2, PPCNONE, {XT6, XA6, XB6}},
+{"xsmsubmsp", XX3(60,25), XX3_MASK, PPCVSX2, PPCNONE, {XT6, XA6, XB6}},
+{"xsresp", XX2(60,26), XX2_MASK, PPCVSX2, PPCNONE, {XT6, XB6}},
{"xsadddp", XX3(60,32), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
{"xsmaddadp", XX3(60,33), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
{"xscmpudp", XX3(60,35), XX3BF_MASK, PPCVSX, PPCNONE, {BF, XA6, XB6}},
@@ -5929,14 +6084,18 @@
{"xvmsubmdp", XX3(60,121), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
{"xsrdpim", XX2(60,121), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
{"xvtdivdp", XX3(60,125), XX3BF_MASK, PPCVSX, PPCNONE, {BF, XA6, XB6}},
+{"xsnmaddasp", XX3(60,129), XX3_MASK, PPCVSX2, PPCNONE, {XT6, XA6, XB6}},
{"xxland", XX3(60,130), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
{"xvcvspuxws", XX2(60,136), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
+{"xsnmaddmsp", XX3(60,137), XX3_MASK, PPCVSX2, PPCNONE, {XT6, XA6, XB6}},
{"xvrspi", XX2(60,137), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
{"xxlandc", XX3(60,138), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
{"xvrsqrtesp", XX2(60,138), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
{"xvsqrtsp", XX2(60,139), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
+{"xsnmsubasp", XX3(60,145), XX3_MASK, PPCVSX2, PPCNONE, {XT6, XA6, XB6}},
{"xxlor", XX3(60,146), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
{"xvcvspsxws", XX2(60,152), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
+{"xsnmsubmsp", XX3(60,153), XX3_MASK, PPCVSX2, PPCNONE, {XT6, XA6, XB6}},
{"xvrspiz", XX2(60,153), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
{"xxlxor", XX3(60,154), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
{"xvresp", XX2(60,154), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
@@ -5949,12 +6108,15 @@
{"xsnmaddmdp", XX3(60,169), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
{"xvrspip", XX2(60,169), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
{"xvtsqrtsp", XX2(60,170), XX2BF_MASK, PPCVSX, PPCNONE, {BF, XB6}},
+{"xxlorc", XX3(60,170), XX3_MASK, PPCVSX2, PPCNONE, {XT6, XA6, XB6}},
{"xvrspic", XX2(60,171), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
{"xscpsgndp", XX3(60,176), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
{"xsnmsubadp", XX3(60,177), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
+{"xxlnand", XX3(60,178), XX3_MASK, PPCVSX2, PPCNONE, {XT6, XA6, XB6}},
{"xvcvsxwsp", XX2(60,184), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
{"xsnmsubmdp", XX3(60,185), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
{"xvrspim", XX2(60,185), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
+{"xxleqv", XX3(60,186), XX3_MASK, PPCVSX2, PPCNONE, {XT6, XA6, XB6}},
{"xvmaxsp", XX3(60,192), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
{"xvnmaddasp", XX3(60,193), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
{"xvminsp", XX3(60,200), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
@@ -5985,8 +6147,13 @@
{"xvnmsubmdp", XX3(60,249), XX3_MASK, PPCVSX, PPCNONE, {XT6, XA6, XB6}},
{"xvrdpim", XX2(60,249), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
{"xscvdpsp", XX2(60,265), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
+{"xscvdpspn", XX2(60,267), XX2_MASK, PPCVSX2, PPCNONE, {XT6, XB6}},
+{"xsrsp", XX2(60,281), XX2_MASK, PPCVSX2, PPCNONE, {XT6, XB6}},
+{"xscvuxdsp", XX2(60,296), XX2_MASK, PPCVSX2, PPCNONE, {XT6, XB6}},
+{"xscvsxdsp", XX2(60,312), XX2_MASK, PPCVSX2, PPCNONE, {XT6, XB6}},
{"xscvdpuxds", XX2(60,328), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
{"xscvspdp", XX2(60,329), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
+{"xscvspdpn", XX2(60,331), XX2_MASK, PPCVSX2, PPCNONE, {XT6, XB6}},
{"xscvdpsxds", XX2(60,344), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
{"xsabsdp", XX2(60,345), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
{"xscvuxddp", XX2(60,360), XX2_MASK, PPCVSX, PPCNONE, {XT6, XB6}},
@@ -6222,6 +6389,8 @@
{"denbcdq", XRC(63,834,0), X_MASK, POWER6, PPCNONE, {S, FRTp, FRBp}},
{"denbcdq.", XRC(63,834,1), X_MASK, POWER6, PPCNONE, {S, FRTp, FRBp}},
+{"fmrgow", X(63,838), X_MASK, PPCVSX2, PPCNONE, {FRT, FRA, FRB}},
+
{"fcfid", XRC(63,846,0), XRA_MASK, PPC64, PPCNONE, {FRT, FRB}},
{"fcfid", XRC(63,846,0), XRA_MASK, PPC476, PPCNONE, {FRT, FRB}},
{"fcfid.", XRC(63,846,1), XRA_MASK, PPC64, PPCNONE, {FRT, FRB}},
@@ -6236,6 +6405,8 @@
{"fctiduz", XRC(63,943,0), XRA_MASK, POWER7|PPCA2, PPCNONE, {FRT, FRB}},
{"fctiduz.", XRC(63,943,1), XRA_MASK, POWER7|PPCA2, PPCNONE, {FRT, FRB}},
+{"fmrgew", X(63,966), X_MASK, PPCVSX2, PPCNONE, {FRT, FRA, FRB}},
+
{"fcfidu", XRC(63,974,0), XRA_MASK, POWER7|PPCA2, PPCNONE, {FRT, FRB}},
{"fcfidu.", XRC(63,974,1), XRA_MASK, POWER7|PPCA2, PPCNONE, {FRT, FRB}},
};

View File

@ -1,60 +0,0 @@
[PATCH] Enable hw watchpoint with longer ranges using DAWR on Power
http://sourceware.org/ml/gdb-patches/2013-07/msg00085.html
http://sourceware.org/ml/gdb-cvs/2013-07/msg00097.html
### src/gdb/ChangeLog 2013/07/22 11:42:30 1.15812
### src/gdb/ChangeLog 2013/07/22 13:17:51 1.15813
## -1,3 +1,9 @@
+2013-07-22 Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com>
+
+ * ppc-linux-nat.c (PPC_DEBUG_FEATURE_DATA_BP_DAWR): New define.
+ (ppc_linux_region_ok_for_hw_watchpoint): Add checking to use the new
+ DAWR interface for longer ranges hardware watchpoint (up to 512 bytes).
+
2013-07-22 Phil Muldoon <pmuldoon@redhat.com>
* top.c (print_gdb_version): Add help, apropos description and
--- gdb-7.6/gdb/ppc-linux-nat.c.orig 2013-07-24 17:39:30.434549279 +0200
+++ gdb-7.6/gdb/ppc-linux-nat.c 2013-07-24 17:41:31.337706502 +0200
@@ -178,7 +178,11 @@ struct ppc_hw_breakpoint
(1<<((n)+PPC_BREAKPOINT_CONDITION_BE_SHIFT))
#endif /* PPC_PTRACE_GETHWDBGINFO */
-
+/* Feature defined on Linux kernel v3.9: DAWR interface, that enables wider
+ watchpoint (up to 512 bytes). */
+#ifndef PPC_DEBUG_FEATURE_DATA_BP_DAWR
+#define PPC_DEBUG_FEATURE_DATA_BP_DAWR 0x10
+#endif /* PPC_DEBUG_FEATURE_DATA_BP_DAWR */
/* Similarly for the general-purpose (gp0 -- gp31)
and floating-point registers (fp0 -- fp31). */
@@ -1503,6 +1507,7 @@ ppc_linux_region_ok_for_hw_watchpoint (C
to determine the hardcoded watchable region for watchpoints. */
if (have_ptrace_booke_interface ())
{
+ int region_size;
/* Embedded DAC-based processors, like the PowerPC 440 have ranged
watchpoints and can watch any access within an arbitrary memory
region. This is useful to watch arrays and structs, for instance. It
@@ -1511,11 +1516,17 @@ ppc_linux_region_ok_for_hw_watchpoint (C
&& booke_debug_info.features & PPC_DEBUG_FEATURE_DATA_BP_RANGE
&& ppc_linux_get_hwcap () & PPC_FEATURE_BOOKE)
return 2;
+ /* Check if the processor provides DAWR interface. */
+ if (booke_debug_info.features & PPC_DEBUG_FEATURE_DATA_BP_DAWR)
+ /* DAWR interface allows to watch up to 512 byte wide ranges which
+ can't cross a 512 byte boundary. */
+ region_size = 512;
+ else
+ region_size = booke_debug_info.data_bp_alignment;
/* Server processors provide one hardware watchpoint and addr+len should
fall in the watchable region provided by the ptrace interface. */
- if (booke_debug_info.data_bp_alignment
- && (addr + len > (addr & ~(booke_debug_info.data_bp_alignment - 1))
- + booke_debug_info.data_bp_alignment))
+ if (region_size
+ && (addr + len > (addr & ~(region_size - 1)) + region_size))
return 0;
}
/* addr+len must fall in the 8 byte watchable region for DABR-based

View File

@ -1,62 +0,0 @@
http://sourceware.org/ml/gdb-patches/2013-05/msg00300.html
Subject: [RFA] Fix file name matching in expand_symtabs_matching_via_partial
[blech, apologies for the resend, typo in address]
Hi.
I noticed this while playing with my new "mt expand-symtabs" command
and watching "mt set per on" output.
The test here is wrong.
ref: http://sourceware.org/ml/gdb-patches/2013-02/msg00063.html
The test
(basenames_may_differ
|| (*file_matcher) (lbasename (ps->filename), data, 1))
fails and the code falls through assuming the file name matched.
Regression tested on amd64-linux.
Ok to check in?
Ok for 7.6 branch too?
2013-05-08 Doug Evans <dje@google.com>
* psymtab.c (expand_symtabs_matching_via_partial): Fix file name
matching test.
Index: psymtab.c
===================================================================
RCS file: /cvs/src/src/gdb/psymtab.c,v
retrieving revision 1.74
diff -u -p -r1.74 psymtab.c
--- ./gdb/psymtab.c 6 May 2013 19:15:17 -0000 1.74
+++ ./gdb/psymtab.c 8 May 2013 19:18:51 -0000
@@ -1400,15 +1405,21 @@ expand_symtabs_matching_via_partial
if (file_matcher)
{
+ int match;
+
if (ps->anonymous)
continue;
- /* Before we invoke realpath, which can get expensive when many
- files are involved, do a quick comparison of the basenames. */
- if (!(*file_matcher) (ps->filename, data, 0)
- && (basenames_may_differ
+ match = (*file_matcher) (ps->filename, data, 0);
+ if (! match)
+ {
+ /* Before we invoke realpath, which can get expensive when many
+ files are involved, do a quick comparison of the basenames. */
+ if (basenames_may_differ
|| (*file_matcher) (lbasename (ps->filename), data, 1))
- && !(*file_matcher) (psymtab_to_fullname (ps), data, 0))
+ match = (*file_matcher) (psymtab_to_fullname (ps), data, 0);
+ }
+ if (! match)
continue;
}

File diff suppressed because it is too large Load Diff

View File

@ -96,10 +96,10 @@ Content-Type: text/x-patch
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=bitpos-wp.patch Content-Disposition: attachment; filename=bitpos-wp.patch
Index: gdb-7.5.50.20130215/gdb/arm-linux-nat.c Index: gdb-7.6.50.20130731-cvs/gdb/arm-linux-nat.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/arm-linux-nat.c 2013-02-15 22:40:18.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/arm-linux-nat.c 2013-08-02 16:42:29.565632895 +0200
+++ gdb-7.5.50.20130215/gdb/arm-linux-nat.c 2013-02-15 22:42:45.988804306 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/arm-linux-nat.c 2013-08-02 16:42:34.094639104 +0200
@@ -1105,7 +1105,7 @@ arm_linux_region_ok_for_hw_watchpoint (C @@ -1105,7 +1105,7 @@ arm_linux_region_ok_for_hw_watchpoint (C
/* Insert a Hardware breakpoint. */ /* Insert a Hardware breakpoint. */
@ -127,10 +127,10 @@ Index: gdb-7.5.50.20130215/gdb/arm-linux-nat.c
{ {
return start <= addr && start + length - 1 >= addr; return start <= addr && start + length - 1 >= addr;
} }
Index: gdb-7.5.50.20130215/gdb/i386-nat.c Index: gdb-7.6.50.20130731-cvs/gdb/i386-nat.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/i386-nat.c 2013-02-15 22:41:53.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/i386-nat.c 2013-08-02 16:42:29.566632896 +0200
+++ gdb-7.5.50.20130215/gdb/i386-nat.c 2013-02-15 22:43:14.005838741 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/i386-nat.c 2013-08-02 16:42:34.095639105 +0200
@@ -589,7 +589,7 @@ i386_update_inferior_debug_regs (struct @@ -589,7 +589,7 @@ i386_update_inferior_debug_regs (struct
of the type TYPE. Return 0 on success, -1 on failure. */ of the type TYPE. Return 0 on success, -1 on failure. */
@ -149,10 +149,10 @@ Index: gdb-7.5.50.20130215/gdb/i386-nat.c
struct expression *cond) struct expression *cond)
{ {
struct i386_debug_reg_state *state struct i386_debug_reg_state *state
Index: gdb-7.5.50.20130215/gdb/ia64-linux-nat.c Index: gdb-7.6.50.20130731-cvs/gdb/ia64-linux-nat.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/ia64-linux-nat.c 2013-02-15 22:34:18.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/ia64-linux-nat.c 2013-08-02 16:42:29.566632896 +0200
+++ gdb-7.5.50.20130215/gdb/ia64-linux-nat.c 2013-02-15 22:42:45.989804309 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/ia64-linux-nat.c 2013-08-02 16:42:34.095639105 +0200
@@ -542,7 +542,7 @@ is_power_of_2 (int val) @@ -542,7 +542,7 @@ is_power_of_2 (int val)
} }
@ -171,11 +171,11 @@ Index: gdb-7.5.50.20130215/gdb/ia64-linux-nat.c
struct expression *cond) struct expression *cond)
{ {
int idx; int idx;
Index: gdb-7.5.50.20130215/gdb/inf-ttrace.c Index: gdb-7.6.50.20130731-cvs/gdb/inf-ttrace.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/inf-ttrace.c 2013-02-15 22:40:18.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/inf-ttrace.c 2013-08-02 16:42:29.567632898 +0200
+++ gdb-7.5.50.20130215/gdb/inf-ttrace.c 2013-02-15 22:42:45.989804309 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/inf-ttrace.c 2013-08-02 16:42:34.095639105 +0200
@@ -313,14 +313,14 @@ inf_ttrace_disable_page_protections (pid @@ -314,14 +314,14 @@ inf_ttrace_disable_page_protections (pid
type TYPE. */ type TYPE. */
static int static int
@ -193,7 +193,7 @@ Index: gdb-7.5.50.20130215/gdb/inf-ttrace.c
gdb_assert (type == hw_write); gdb_assert (type == hw_write);
@@ -337,14 +337,14 @@ inf_ttrace_insert_watchpoint (CORE_ADDR @@ -338,14 +338,14 @@ inf_ttrace_insert_watchpoint (CORE_ADDR
type TYPE. */ type TYPE. */
static int static int
@ -211,11 +211,11 @@ Index: gdb-7.5.50.20130215/gdb/inf-ttrace.c
gdb_assert (type == hw_write); gdb_assert (type == hw_write);
Index: gdb-7.5.50.20130215/gdb/mips-linux-nat.c Index: gdb-7.6.50.20130731-cvs/gdb/mips-linux-nat.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/mips-linux-nat.c 2013-02-15 22:40:18.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/mips-linux-nat.c 2013-08-02 16:42:29.568632899 +0200
+++ gdb-7.5.50.20130215/gdb/mips-linux-nat.c 2013-02-15 22:42:45.990804311 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/mips-linux-nat.c 2013-08-02 16:42:34.096639106 +0200
@@ -1017,7 +1017,7 @@ populate_regs_from_watches (struct pt_wa @@ -644,7 +644,7 @@ mips_linux_new_thread (struct lwp_info *
watch. Return zero on success. */ watch. Return zero on success. */
static int static int
@ -224,7 +224,7 @@ Index: gdb-7.5.50.20130215/gdb/mips-linux-nat.c
struct expression *cond) struct expression *cond)
{ {
struct pt_watch_regs regs; struct pt_watch_regs regs;
@@ -1067,7 +1067,7 @@ mips_linux_insert_watchpoint (CORE_ADDR @@ -697,7 +697,7 @@ mips_linux_insert_watchpoint (CORE_ADDR
Return zero on success. */ Return zero on success. */
static int static int
@ -233,10 +233,10 @@ Index: gdb-7.5.50.20130215/gdb/mips-linux-nat.c
struct expression *cond) struct expression *cond)
{ {
int retval; int retval;
Index: gdb-7.5.50.20130215/gdb/nto-procfs.c Index: gdb-7.6.50.20130731-cvs/gdb/nto-procfs.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/nto-procfs.c 2013-01-01 07:32:47.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/nto-procfs.c 2013-08-02 16:42:29.568632899 +0200
+++ gdb-7.5.50.20130215/gdb/nto-procfs.c 2013-02-15 22:42:45.990804311 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/nto-procfs.c 2013-08-02 16:42:34.096639106 +0200
@@ -69,10 +69,10 @@ static ptid_t do_attach (ptid_t ptid); @@ -69,10 +69,10 @@ static ptid_t do_attach (ptid_t ptid);
static int procfs_can_use_hw_breakpoint (int, int, int); static int procfs_can_use_hw_breakpoint (int, int, int);
@ -267,11 +267,11 @@ Index: gdb-7.5.50.20130215/gdb/nto-procfs.c
struct expression *cond) struct expression *cond)
{ {
return procfs_hw_watchpoint (addr, len, type); return procfs_hw_watchpoint (addr, len, type);
Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c Index: gdb-7.6.50.20130731-cvs/gdb/ppc-linux-nat.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/ppc-linux-nat.c 2013-02-15 22:40:18.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/ppc-linux-nat.c 2013-08-02 16:42:29.570632902 +0200
+++ gdb-7.5.50.20130215/gdb/ppc-linux-nat.c 2013-02-15 22:42:45.991804313 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/ppc-linux-nat.c 2013-08-02 16:42:34.097639108 +0200
@@ -1838,11 +1838,11 @@ can_use_watchpoint_cond_accel (void) @@ -1853,11 +1853,11 @@ can_use_watchpoint_cond_accel (void)
CONDITION_VALUE will hold the value which should be put in the CONDITION_VALUE will hold the value which should be put in the
DVC register. */ DVC register. */
static void static void
@ -286,7 +286,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
CORE_ADDR addr_end_data, addr_end_dvc; CORE_ADDR addr_end_data, addr_end_dvc;
/* The DVC register compares bytes within fixed-length windows which /* The DVC register compares bytes within fixed-length windows which
@@ -1929,7 +1929,7 @@ num_memory_accesses (struct value *v) @@ -1944,7 +1944,7 @@ num_memory_accesses (struct value *v)
of the constant. */ of the constant. */
static int static int
check_condition (CORE_ADDR watch_addr, struct expression *cond, check_condition (CORE_ADDR watch_addr, struct expression *cond,
@ -295,7 +295,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
{ {
int pc = 1, num_accesses_left, num_accesses_right; int pc = 1, num_accesses_left, num_accesses_right;
struct value *left_val, *right_val, *left_chain, *right_chain; struct value *left_val, *right_val, *left_chain, *right_chain;
@@ -1996,7 +1996,7 @@ check_condition (CORE_ADDR watch_addr, s @@ -2011,7 +2011,7 @@ check_condition (CORE_ADDR watch_addr, s
the condition expression, thus only triggering the watchpoint when it is the condition expression, thus only triggering the watchpoint when it is
true. */ true. */
static int static int
@ -304,7 +304,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
struct expression *cond) struct expression *cond)
{ {
CORE_ADDR data_value; CORE_ADDR data_value;
@@ -2013,7 +2013,7 @@ ppc_linux_can_accel_watchpoint_condition @@ -2028,7 +2028,7 @@ ppc_linux_can_accel_watchpoint_condition
static void static void
create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr, create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr,
@ -313,7 +313,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
int insert) int insert)
{ {
if (len == 1 if (len == 1
@@ -2058,7 +2058,7 @@ create_watchpoint_request (struct ppc_hw @@ -2073,7 +2073,7 @@ create_watchpoint_request (struct ppc_hw
} }
static int static int
@ -322,7 +322,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
struct expression *cond) struct expression *cond)
{ {
struct lwp_info *lp; struct lwp_info *lp;
@@ -2126,7 +2126,7 @@ ppc_linux_insert_watchpoint (CORE_ADDR a @@ -2141,7 +2141,7 @@ ppc_linux_insert_watchpoint (CORE_ADDR a
} }
static int static int
@ -331,7 +331,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
struct expression *cond) struct expression *cond)
{ {
struct lwp_info *lp; struct lwp_info *lp;
@@ -2266,7 +2266,7 @@ ppc_linux_stopped_by_watchpoint (void) @@ -2292,7 +2292,7 @@ ppc_linux_stopped_by_watchpoint (void)
static int static int
ppc_linux_watchpoint_addr_within_range (struct target_ops *target, ppc_linux_watchpoint_addr_within_range (struct target_ops *target,
CORE_ADDR addr, CORE_ADDR addr,
@ -340,10 +340,10 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
{ {
int mask; int mask;
Index: gdb-7.5.50.20130215/gdb/procfs.c Index: gdb-7.6.50.20130731-cvs/gdb/procfs.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/procfs.c 2013-02-15 22:40:18.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/procfs.c 2013-08-02 16:42:29.572632904 +0200
+++ gdb-7.5.50.20130215/gdb/procfs.c 2013-02-15 22:42:45.992804315 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/procfs.c 2013-08-02 16:42:34.098639109 +0200
@@ -2433,7 +2433,7 @@ procfs_address_to_host_pointer (CORE_ADD @@ -2433,7 +2433,7 @@ procfs_address_to_host_pointer (CORE_ADD
#endif #endif
@ -380,11 +380,11 @@ Index: gdb-7.5.50.20130215/gdb/procfs.c
struct expression *cond) struct expression *cond)
{ {
return procfs_set_watchpoint (inferior_ptid, addr, 0, 0, 0); return procfs_set_watchpoint (inferior_ptid, addr, 0, 0, 0);
Index: gdb-7.5.50.20130215/gdb/remote-m32r-sdi.c Index: gdb-7.6.50.20130731-cvs/gdb/remote-m32r-sdi.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/remote-m32r-sdi.c 2013-01-01 07:32:50.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/remote-m32r-sdi.c 2013-08-02 16:42:29.573632906 +0200
+++ gdb-7.5.50.20130215/gdb/remote-m32r-sdi.c 2013-02-15 22:42:45.993804317 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/remote-m32r-sdi.c 2013-08-02 16:42:34.099639111 +0200
@@ -1417,14 +1417,15 @@ m32r_can_use_hw_watchpoint (int type, in @@ -1416,14 +1416,15 @@ m32r_can_use_hw_watchpoint (int type, in
watchpoint. */ watchpoint. */
static int static int
@ -403,7 +403,7 @@ Index: gdb-7.5.50.20130215/gdb/remote-m32r-sdi.c
for (i = 0; i < MAX_ACCESS_BREAKS; i++) for (i = 0; i < MAX_ACCESS_BREAKS; i++)
{ {
@@ -1442,14 +1443,15 @@ m32r_insert_watchpoint (CORE_ADDR addr, @@ -1441,14 +1442,15 @@ m32r_insert_watchpoint (CORE_ADDR addr,
} }
static int static int
@ -422,11 +422,11 @@ Index: gdb-7.5.50.20130215/gdb/remote-m32r-sdi.c
for (i = 0; i < MAX_ACCESS_BREAKS; i++) for (i = 0; i < MAX_ACCESS_BREAKS; i++)
{ {
Index: gdb-7.5.50.20130215/gdb/remote-mips.c Index: gdb-7.6.50.20130731-cvs/gdb/remote-mips.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/remote-mips.c 2013-01-01 07:32:50.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/remote-mips.c 2013-08-02 16:42:29.574632907 +0200
+++ gdb-7.5.50.20130215/gdb/remote-mips.c 2013-02-15 22:42:45.994804319 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/remote-mips.c 2013-08-02 16:42:34.100639112 +0200
@@ -2419,7 +2419,7 @@ calculate_mask (CORE_ADDR addr, int len) @@ -2426,7 +2426,7 @@ calculate_mask (CORE_ADDR addr, int len)
watchpoint. */ watchpoint. */
static int static int
@ -435,7 +435,7 @@ Index: gdb-7.5.50.20130215/gdb/remote-mips.c
struct expression *cond) struct expression *cond)
{ {
if (mips_set_breakpoint (addr, len, type)) if (mips_set_breakpoint (addr, len, type))
@@ -2431,7 +2431,7 @@ mips_insert_watchpoint (CORE_ADDR addr, @@ -2438,7 +2438,7 @@ mips_insert_watchpoint (CORE_ADDR addr,
/* Remove a watchpoint. */ /* Remove a watchpoint. */
static int static int
@ -444,11 +444,11 @@ Index: gdb-7.5.50.20130215/gdb/remote-mips.c
struct expression *cond) struct expression *cond)
{ {
if (mips_clear_breakpoint (addr, len, type)) if (mips_clear_breakpoint (addr, len, type))
Index: gdb-7.5.50.20130215/gdb/remote.c Index: gdb-7.6.50.20130731-cvs/gdb/remote.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/remote.c 2013-02-15 22:40:18.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/remote.c 2013-08-02 16:42:29.577632911 +0200
+++ gdb-7.5.50.20130215/gdb/remote.c 2013-02-15 22:42:45.996804323 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/remote.c 2013-08-02 16:42:34.103639116 +0200
@@ -8155,7 +8155,7 @@ watchpoint_to_Z_packet (int type) @@ -8277,7 +8277,7 @@ watchpoint_to_Z_packet (int type)
} }
static int static int
@ -457,7 +457,7 @@ Index: gdb-7.5.50.20130215/gdb/remote.c
struct expression *cond) struct expression *cond)
{ {
struct remote_state *rs = get_remote_state (); struct remote_state *rs = get_remote_state ();
@@ -8170,7 +8170,7 @@ remote_insert_watchpoint (CORE_ADDR addr @@ -8297,7 +8297,7 @@ remote_insert_watchpoint (CORE_ADDR addr
p = strchr (rs->buf, '\0'); p = strchr (rs->buf, '\0');
addr = remote_address_masked (addr); addr = remote_address_masked (addr);
p += hexnumstr (p, (ULONGEST) addr); p += hexnumstr (p, (ULONGEST) addr);
@ -466,7 +466,7 @@ Index: gdb-7.5.50.20130215/gdb/remote.c
putpkt (rs->buf); putpkt (rs->buf);
getpkt (&rs->buf, &rs->buf_size, 0); getpkt (&rs->buf, &rs->buf_size, 0);
@@ -8190,7 +8190,7 @@ remote_insert_watchpoint (CORE_ADDR addr @@ -8317,7 +8317,7 @@ remote_insert_watchpoint (CORE_ADDR addr
static int static int
remote_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr, remote_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr,
@ -475,7 +475,7 @@ Index: gdb-7.5.50.20130215/gdb/remote.c
{ {
CORE_ADDR diff = remote_address_masked (addr - start); CORE_ADDR diff = remote_address_masked (addr - start);
@@ -8199,7 +8199,7 @@ remote_watchpoint_addr_within_range (str @@ -8326,7 +8326,7 @@ remote_watchpoint_addr_within_range (str
static int static int
@ -484,7 +484,7 @@ Index: gdb-7.5.50.20130215/gdb/remote.c
struct expression *cond) struct expression *cond)
{ {
struct remote_state *rs = get_remote_state (); struct remote_state *rs = get_remote_state ();
@@ -8214,7 +8214,7 @@ remote_remove_watchpoint (CORE_ADDR addr @@ -8346,7 +8346,7 @@ remote_remove_watchpoint (CORE_ADDR addr
p = strchr (rs->buf, '\0'); p = strchr (rs->buf, '\0');
addr = remote_address_masked (addr); addr = remote_address_masked (addr);
p += hexnumstr (p, (ULONGEST) addr); p += hexnumstr (p, (ULONGEST) addr);
@ -493,10 +493,10 @@ Index: gdb-7.5.50.20130215/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.5.50.20130215/gdb/s390-nat.c Index: gdb-7.6.50.20130731-cvs/gdb/s390-nat.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/s390-nat.c 2013-02-15 22:40:18.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/s390-nat.c 2013-08-02 16:42:29.578632913 +0200
+++ gdb-7.5.50.20130215/gdb/s390-nat.c 2013-02-15 22:42:45.997804325 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/s390-nat.c 2013-08-02 16:42:34.103639116 +0200
@@ -516,7 +516,7 @@ s390_fix_watch_points (struct lwp_info * @@ -516,7 +516,7 @@ s390_fix_watch_points (struct lwp_info *
} }
@ -515,21 +515,20 @@ Index: gdb-7.5.50.20130215/gdb/s390-nat.c
struct expression *cond) struct expression *cond)
{ {
struct lwp_info *lp; struct lwp_info *lp;
Index: gdb-7.5.50.20130215/gdb/target.c Index: gdb-7.6.50.20130731-cvs/gdb/target.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/target.c 2013-02-15 22:40:18.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/target.c 2013-08-02 16:42:29.580632915 +0200
+++ gdb-7.5.50.20130215/gdb/target.c 2013-02-15 22:42:45.997804325 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/target.c 2013-08-02 16:42:52.160663787 +0200
@@ -49,7 +49,8 @@ static void target_info (char *, int); @@ -49,7 +49,7 @@ static void target_info (char *, int);
static void default_terminal_info (char *, int); static void default_terminal_info (const char *, int);
static int default_watchpoint_addr_within_range (struct target_ops *, static int default_watchpoint_addr_within_range (struct target_ops *,
- CORE_ADDR, CORE_ADDR, int); - CORE_ADDR, CORE_ADDR, int);
+ CORE_ADDR, CORE_ADDR, + CORE_ADDR, CORE_ADDR, LONGEST);
+ LONGEST);
static int default_region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST); static int default_region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST);
@@ -114,10 +115,10 @@ static int debug_to_insert_hw_breakpoint @@ -114,10 +114,10 @@ static int debug_to_insert_hw_breakpoint
static int debug_to_remove_hw_breakpoint (struct gdbarch *, static int debug_to_remove_hw_breakpoint (struct gdbarch *,
struct bp_target_info *); struct bp_target_info *);
@ -542,7 +541,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
struct expression *); struct expression *);
static int debug_to_stopped_by_watchpoint (void); static int debug_to_stopped_by_watchpoint (void);
@@ -125,11 +126,12 @@ static int debug_to_stopped_by_watchpoin @@ -125,11 +125,12 @@ static int debug_to_stopped_by_watchpoin
static int debug_to_stopped_data_address (struct target_ops *, CORE_ADDR *); static int debug_to_stopped_data_address (struct target_ops *, CORE_ADDR *);
static int debug_to_watchpoint_addr_within_range (struct target_ops *, static int debug_to_watchpoint_addr_within_range (struct target_ops *,
@ -557,7 +556,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
struct expression *); struct expression *);
static void debug_to_terminal_init (void); static void debug_to_terminal_init (void);
@@ -751,10 +753,10 @@ update_current_target (void) @@ -790,10 +791,10 @@ update_current_target (void)
(int (*) (struct gdbarch *, struct bp_target_info *)) (int (*) (struct gdbarch *, struct bp_target_info *))
return_minus_one); return_minus_one);
de_fault (to_insert_watchpoint, de_fault (to_insert_watchpoint,
@ -570,7 +569,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
return_minus_one); return_minus_one);
de_fault (to_stopped_by_watchpoint, de_fault (to_stopped_by_watchpoint,
(int (*) (void)) (int (*) (void))
@@ -767,7 +769,7 @@ update_current_target (void) @@ -806,7 +807,7 @@ update_current_target (void)
de_fault (to_region_ok_for_hw_watchpoint, de_fault (to_region_ok_for_hw_watchpoint,
default_region_ok_for_hw_watchpoint); default_region_ok_for_hw_watchpoint);
de_fault (to_can_accel_watchpoint_condition, de_fault (to_can_accel_watchpoint_condition,
@ -579,7 +578,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
return_zero); return_zero);
de_fault (to_terminal_init, de_fault (to_terminal_init,
(void (*) (void)) (void (*) (void))
@@ -3558,7 +3560,7 @@ default_region_ok_for_hw_watchpoint (COR @@ -3594,7 +3595,7 @@ default_region_ok_for_hw_watchpoint (COR
static int static int
default_watchpoint_addr_within_range (struct target_ops *target, default_watchpoint_addr_within_range (struct target_ops *target,
CORE_ADDR addr, CORE_ADDR addr,
@ -588,7 +587,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
{ {
return addr >= start && addr < start + length; return addr >= start && addr < start + length;
} }
@@ -4265,7 +4267,7 @@ debug_to_region_ok_for_hw_watchpoint (CO @@ -4555,7 +4556,7 @@ debug_to_region_ok_for_hw_watchpoint (CO
} }
static int static int
@ -597,7 +596,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
struct expression *cond) struct expression *cond)
{ {
int retval; int retval;
@@ -4275,8 +4277,8 @@ debug_to_can_accel_watchpoint_condition @@ -4565,8 +4566,8 @@ debug_to_can_accel_watchpoint_condition
fprintf_unfiltered (gdb_stdlog, fprintf_unfiltered (gdb_stdlog,
"target_can_accel_watchpoint_condition " "target_can_accel_watchpoint_condition "
@ -608,7 +607,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
host_address_to_string (cond), (unsigned long) retval); host_address_to_string (cond), (unsigned long) retval);
return retval; return retval;
} }
@@ -4311,7 +4313,7 @@ debug_to_stopped_data_address (struct ta @@ -4601,7 +4602,7 @@ debug_to_stopped_data_address (struct ta
static int static int
debug_to_watchpoint_addr_within_range (struct target_ops *target, debug_to_watchpoint_addr_within_range (struct target_ops *target,
CORE_ADDR addr, CORE_ADDR addr,
@ -617,7 +616,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
{ {
int retval; int retval;
@@ -4319,9 +4321,9 @@ debug_to_watchpoint_addr_within_range (s @@ -4609,9 +4610,9 @@ debug_to_watchpoint_addr_within_range (s
start, length); start, length);
fprintf_filtered (gdb_stdlog, fprintf_filtered (gdb_stdlog,
@ -629,7 +628,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
return retval; return retval;
} }
@@ -4356,7 +4358,7 @@ debug_to_remove_hw_breakpoint (struct gd @@ -4646,7 +4647,7 @@ debug_to_remove_hw_breakpoint (struct gd
} }
static int static int
@ -638,7 +637,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
struct expression *cond) struct expression *cond)
{ {
int retval; int retval;
@@ -4364,14 +4366,14 @@ debug_to_insert_watchpoint (CORE_ADDR ad @@ -4654,14 +4655,14 @@ debug_to_insert_watchpoint (CORE_ADDR ad
retval = debug_target.to_insert_watchpoint (addr, len, type, cond); retval = debug_target.to_insert_watchpoint (addr, len, type, cond);
fprintf_unfiltered (gdb_stdlog, fprintf_unfiltered (gdb_stdlog,
@ -656,7 +655,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
struct expression *cond) struct expression *cond)
{ {
int retval; int retval;
@@ -4379,8 +4381,8 @@ debug_to_remove_watchpoint (CORE_ADDR ad @@ -4669,8 +4670,8 @@ debug_to_remove_watchpoint (CORE_ADDR ad
retval = debug_target.to_remove_watchpoint (addr, len, type, cond); retval = debug_target.to_remove_watchpoint (addr, len, type, cond);
fprintf_unfiltered (gdb_stdlog, fprintf_unfiltered (gdb_stdlog,
@ -667,11 +666,11 @@ Index: gdb-7.5.50.20130215/gdb/target.c
host_address_to_string (cond), (unsigned long) retval); host_address_to_string (cond), (unsigned long) retval);
return retval; return retval;
} }
Index: gdb-7.5.50.20130215/gdb/target.h Index: gdb-7.6.50.20130731-cvs/gdb/target.h
=================================================================== ===================================================================
--- gdb-7.5.50.20130215.orig/gdb/target.h 2013-02-15 22:40:18.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/target.h 2013-08-02 16:42:29.580632915 +0200
+++ gdb-7.5.50.20130215/gdb/target.h 2013-02-15 22:42:45.998804328 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/target.h 2013-08-02 16:42:34.105639119 +0200
@@ -466,8 +466,8 @@ struct target_ops @@ -373,8 +373,8 @@ struct target_ops
/* Documentation of what the two routines below are expected to do is /* Documentation of what the two routines below are expected to do is
provided with the corresponding target_* macros. */ provided with the corresponding target_* macros. */
@ -682,7 +681,7 @@ Index: gdb-7.5.50.20130215/gdb/target.h
int (*to_insert_mask_watchpoint) (struct target_ops *, int (*to_insert_mask_watchpoint) (struct target_ops *,
CORE_ADDR, CORE_ADDR, int); CORE_ADDR, CORE_ADDR, int);
@@ -478,13 +478,13 @@ struct target_ops @@ -385,13 +385,13 @@ struct target_ops
int to_have_continuable_watchpoint; int to_have_continuable_watchpoint;
int (*to_stopped_data_address) (struct target_ops *, CORE_ADDR *); int (*to_stopped_data_address) (struct target_ops *, CORE_ADDR *);
int (*to_watchpoint_addr_within_range) (struct target_ops *, int (*to_watchpoint_addr_within_range) (struct target_ops *,

View File

@ -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.5.50.20130310/gdb/alpha-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/alpha-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/alpha-tdep.c 2013-03-10 16:44:34.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/alpha-tdep.c 2013-08-02 16:43:01.128676094 +0200
+++ gdb-7.5.50.20130310/gdb/alpha-tdep.c 2013-03-10 16:44:42.111599838 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/alpha-tdep.c 2013-08-02 16:43:04.723681004 +0200
@@ -299,18 +299,18 @@ alpha_push_dummy_call (struct gdbarch *g @@ -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,10 +184,10 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/amd64-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/amd64-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/amd64-tdep.c 2013-03-10 16:16:23.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/amd64-tdep.c 2013-08-02 16:43:01.130676097 +0200
+++ gdb-7.5.50.20130310/gdb/amd64-tdep.c 2013-03-10 16:44:42.112599838 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/amd64-tdep.c 2013-08-02 16:43:04.724681006 +0200
@@ -616,7 +616,7 @@ amd64_return_value (struct gdbarch *gdba @@ -616,7 +616,7 @@ amd64_return_value (struct gdbarch *gdba
{ {
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
@ -217,10 +217,10 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/amd64-windows-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/amd64-windows-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/amd64-windows-tdep.c 2013-01-01 07:32:37.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/amd64-windows-tdep.c 2013-08-02 16:43:01.135676104 +0200
+++ gdb-7.5.50.20130310/gdb/amd64-windows-tdep.c 2013-03-10 16:44:42.112599838 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/amd64-windows-tdep.c 2013-08-02 16:43:04.724681006 +0200
@@ -79,7 +79,7 @@ amd64_windows_return_value (struct gdbar @@ -79,7 +79,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,11 +230,11 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/arm-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/arm-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/arm-tdep.c 2013-03-01 16:38:23.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/arm-tdep.c 2013-08-02 16:43:01.140676110 +0200
+++ gdb-7.5.50.20130310/gdb/arm-tdep.c 2013-03-10 16:44:42.115599840 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/arm-tdep.c 2013-08-02 16:43:04.727681010 +0200
@@ -3496,7 +3496,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. */
@ -243,7 +243,7 @@ Index: gdb-7.5.50.20130310/gdb/arm-tdep.c
arm_vfp_cprc_sub_candidate (struct type *t, arm_vfp_cprc_sub_candidate (struct type *t,
enum arm_vfp_cprc_base_type *base_type) enum arm_vfp_cprc_base_type *base_type)
{ {
@@ -3527,7 +3527,7 @@ arm_vfp_cprc_sub_candidate (struct type @@ -3529,7 +3529,7 @@ arm_vfp_cprc_sub_candidate (struct type
case TYPE_CODE_ARRAY: case TYPE_CODE_ARRAY:
{ {
@ -252,7 +252,7 @@ Index: gdb-7.5.50.20130310/gdb/arm-tdep.c
unsigned unitlen; unsigned unitlen;
count = arm_vfp_cprc_sub_candidate (TYPE_TARGET_TYPE (t), base_type); count = arm_vfp_cprc_sub_candidate (TYPE_TARGET_TYPE (t), base_type);
if (count == -1) if (count == -1)
@@ -3547,13 +3547,15 @@ arm_vfp_cprc_sub_candidate (struct type @@ -3549,13 +3549,15 @@ arm_vfp_cprc_sub_candidate (struct type
case TYPE_CODE_STRUCT: case TYPE_CODE_STRUCT:
{ {
@ -271,7 +271,7 @@ Index: gdb-7.5.50.20130310/gdb/arm-tdep.c
if (sub_count == -1) if (sub_count == -1)
return -1; return -1;
count += sub_count; count += sub_count;
@@ -3573,13 +3575,15 @@ arm_vfp_cprc_sub_candidate (struct type @@ -3575,13 +3577,15 @@ arm_vfp_cprc_sub_candidate (struct type
case TYPE_CODE_UNION: case TYPE_CODE_UNION:
{ {
@ -290,7 +290,7 @@ Index: gdb-7.5.50.20130310/gdb/arm-tdep.c
if (sub_count == -1) if (sub_count == -1)
return -1; return -1;
count = (count > sub_count ? count : sub_count); count = (count > sub_count ? count : sub_count);
@@ -3615,7 +3619,7 @@ arm_vfp_call_candidate (struct type *t, @@ -3617,7 +3621,7 @@ arm_vfp_call_candidate (struct type *t,
int *count) int *count)
{ {
enum arm_vfp_cprc_base_type b = VFP_CPRC_UNKNOWN; enum arm_vfp_cprc_base_type b = VFP_CPRC_UNKNOWN;
@ -299,7 +299,7 @@ Index: gdb-7.5.50.20130310/gdb/arm-tdep.c
if (c <= 0 || c > 4) if (c <= 0 || c > 4)
return 0; return 0;
*base_type = b; *base_type = b;
@@ -3696,7 +3700,7 @@ arm_push_dummy_call (struct gdbarch *gdb @@ -3698,7 +3702,7 @@ arm_push_dummy_call (struct gdbarch *gdb
for (argnum = 0; argnum < nargs; argnum++) for (argnum = 0; argnum < nargs; argnum++)
{ {
@ -308,10 +308,10 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/avr-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/avr-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/avr-tdep.c 2013-03-01 16:38:24.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/avr-tdep.c 2013-08-02 16:43:01.142676113 +0200
+++ gdb-7.5.50.20130310/gdb/avr-tdep.c 2013-03-10 16:44:42.116599840 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/avr-tdep.c 2013-08-02 16:43:04.728681011 +0200
@@ -1170,13 +1170,14 @@ avr_dummy_id (struct gdbarch *gdbarch, s @@ -1170,13 +1170,14 @@ avr_dummy_id (struct gdbarch *gdbarch, s
struct stack_item struct stack_item
@ -345,10 +345,10 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/bfin-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/bfin-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/bfin-tdep.c 2013-03-01 16:38:24.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/bfin-tdep.c 2013-08-02 16:43:01.142676113 +0200
+++ gdb-7.5.50.20130310/gdb/bfin-tdep.c 2013-03-10 16:46:27.992669964 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/bfin-tdep.c 2013-08-02 16:43:04.728681011 +0200
@@ -506,7 +506,7 @@ bfin_push_dummy_call (struct gdbarch *gd @@ -506,7 +506,7 @@ bfin_push_dummy_call (struct gdbarch *gd
gdb_byte buf[4]; gdb_byte buf[4];
int i; int i;
@ -367,10 +367,10 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/cris-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/cris-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/cris-tdep.c 2013-03-01 16:38:24.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/cris-tdep.c 2013-08-02 16:43:04.729681012 +0200
+++ gdb-7.5.50.20130310/gdb/cris-tdep.c 2013-03-10 16:44:42.117599841 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/cris-tdep.c 2013-08-02 16:52:28.316491561 +0200
@@ -670,13 +670,13 @@ static CORE_ADDR cris_unwind_sp (struct @@ -670,13 +670,13 @@ static CORE_ADDR cris_unwind_sp (struct
struct stack_item struct stack_item
@ -382,8 +382,8 @@ Index: gdb-7.5.50.20130310/gdb/cris-tdep.c
}; };
static struct stack_item * static struct stack_item *
-push_stack_item (struct stack_item *prev, void *contents, int len) -push_stack_item (struct stack_item *prev, const gdb_byte *contents, int len)
+push_stack_item (struct stack_item *prev, void *contents, ssize_t len) +push_stack_item (struct stack_item *prev, const gdb_byte *contents, ssize_t len)
{ {
struct stack_item *si; struct stack_item *si;
si = xmalloc (sizeof (struct stack_item)); si = xmalloc (sizeof (struct stack_item));
@ -393,22 +393,22 @@ Index: gdb-7.5.50.20130310/gdb/cris-tdep.c
{ {
- int len; - int len;
+ ssize_t len; + ssize_t len;
char *val; const gdb_byte *val;
- int reg_demand; - int reg_demand;
- int i; - int i;
+ ssize_t reg_demand; + ssize_t reg_demand;
+ ssize_t i; + ssize_t i;
- len = TYPE_LENGTH (value_type (args[argnum])); - len = TYPE_LENGTH (value_type (args[argnum]));
val = (char *) value_contents (args[argnum]); val = value_contents (args[argnum]);
+ len = TYPE_LENGTH (value_type (args[argnum])); + len = TYPE_LENGTH (value_type (args[argnum]));
/* 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.5.50.20130310/gdb/h8300-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/h8300-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/h8300-tdep.c 2013-01-01 07:32:44.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/h8300-tdep.c 2013-08-02 16:43:01.144676116 +0200
+++ gdb-7.5.50.20130310/gdb/h8300-tdep.c 2013-03-10 16:44:42.118599841 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/h8300-tdep.c 2013-08-02 16:43:04.730681014 +0200
@@ -640,7 +640,7 @@ h8300_push_dummy_call (struct gdbarch *g @@ -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.5.50.20130310/gdb/h8300-tdep.c
for (offset = 0; offset < padded_len; offset += wordsize) for (offset = 0; offset < padded_len; offset += wordsize)
{ {
Index: gdb-7.5.50.20130310/gdb/hppa-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/hppa-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/hppa-tdep.c 2013-03-01 16:38:24.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/hppa-tdep.c 2013-08-02 16:43:01.145676117 +0200
+++ gdb-7.5.50.20130310/gdb/hppa-tdep.c 2013-03-10 16:44:42.119599842 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/hppa-tdep.c 2013-08-02 16:43:04.731681015 +0200
@@ -961,7 +961,7 @@ hppa64_push_dummy_call (struct gdbarch * @@ -961,7 +961,7 @@ hppa64_push_dummy_call (struct gdbarch *
{ {
struct value *arg = args[i]; struct value *arg = args[i];
@ -463,10 +463,10 @@ Index: gdb-7.5.50.20130310/gdb/hppa-tdep.c
int regnum, offset; int regnum, offset;
if (len > 16) if (len > 16)
Index: gdb-7.5.50.20130310/gdb/i386-darwin-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/i386-darwin-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/i386-darwin-tdep.c 2013-02-12 20:03:54.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/i386-darwin-tdep.c 2013-08-02 16:43:01.145676117 +0200
+++ gdb-7.5.50.20130310/gdb/i386-darwin-tdep.c 2013-03-10 16:44:42.119599842 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/i386-darwin-tdep.c 2013-08-02 16:43:04.731681015 +0200
@@ -166,7 +166,7 @@ i386_darwin_push_dummy_call (struct gdba @@ -166,7 +166,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,10 +476,10 @@ Index: gdb-7.5.50.20130310/gdb/i386-darwin-tdep.c
int num_m128 = 0; int num_m128 = 0;
if (struct_return) if (struct_return)
Index: gdb-7.5.50.20130310/gdb/i386-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/i386-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/i386-tdep.c 2013-03-10 16:16:23.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/i386-tdep.c 2013-08-02 16:43:01.147676120 +0200
+++ gdb-7.5.50.20130310/gdb/i386-tdep.c 2013-03-10 16:44:42.120599842 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/i386-tdep.c 2013-08-02 16:43:04.733681018 +0200
@@ -2407,7 +2407,7 @@ i386_push_dummy_call (struct gdbarch *gd @@ -2407,7 +2407,7 @@ i386_push_dummy_call (struct gdbarch *gd
gdb_byte buf[4]; gdb_byte buf[4];
int i; int i;
@ -543,10 +543,10 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/ia64-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/ia64-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/ia64-tdep.c 2013-03-10 16:16:23.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/ia64-tdep.c 2013-08-02 16:43:01.148676121 +0200
+++ gdb-7.5.50.20130310/gdb/ia64-tdep.c 2013-03-10 16:44:42.121599843 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/ia64-tdep.c 2013-08-02 16:43:04.734681019 +0200
@@ -3974,8 +3974,10 @@ ia64_push_dummy_call (struct gdbarch *gd @@ -3974,8 +3974,10 @@ ia64_push_dummy_call (struct gdbarch *gd
int argno; int argno;
struct value *arg; struct value *arg;
@ -560,10 +560,10 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/iq2000-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/iq2000-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/iq2000-tdep.c 2013-03-01 16:38:25.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/iq2000-tdep.c 2013-08-02 16:43:01.149676123 +0200
+++ gdb-7.5.50.20130310/gdb/iq2000-tdep.c 2013-03-10 16:44:42.121599843 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/iq2000-tdep.c 2013-08-02 16:43:04.734681019 +0200
@@ -654,8 +654,9 @@ iq2000_push_dummy_call (struct gdbarch * @@ -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,11 +576,11 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/m32r-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/m32r-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/m32r-tdep.c 2013-01-01 07:32:46.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/m32r-tdep.c 2013-08-02 16:43:01.149676123 +0200
+++ gdb-7.5.50.20130310/gdb/m32r-tdep.c 2013-03-10 16:44:42.121599843 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/m32r-tdep.c 2013-08-02 16:43:04.734681019 +0200
@@ -695,7 +695,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;
gdb_byte valbuf[MAX_REGISTER_SIZE]; gdb_byte valbuf[MAX_REGISTER_SIZE];
@ -589,10 +589,10 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/m68k-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/m68k-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/m68k-tdep.c 2013-01-01 07:32:46.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/m68k-tdep.c 2013-08-02 16:43:01.149676123 +0200
+++ gdb-7.5.50.20130310/gdb/m68k-tdep.c 2013-03-10 16:44:42.121599843 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/m68k-tdep.c 2013-08-02 16:43:04.735681021 +0200
@@ -384,7 +384,7 @@ m68k_reg_struct_return_p (struct gdbarch @@ -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.5.50.20130310/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.5.50.20130310/gdb/m88k-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/m88k-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/m88k-tdep.c 2013-01-01 07:32:47.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/m88k-tdep.c 2013-08-02 16:43:01.150676124 +0200
+++ gdb-7.5.50.20130310/gdb/m88k-tdep.c 2013-03-10 16:44:42.121599843 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/m88k-tdep.c 2013-08-02 16:43:04.735681021 +0200
@@ -260,13 +260,13 @@ m88k_store_arguments (struct regcache *r @@ -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,11 +646,11 @@ Index: gdb-7.5.50.20130310/gdb/m88k-tdep.c
if (m88k_in_register_p (type)) if (m88k_in_register_p (type))
{ {
Index: gdb-7.5.50.20130310/gdb/mep-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/mep-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/mep-tdep.c 2013-03-01 16:38:25.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/mep-tdep.c 2013-08-02 16:43:01.150676124 +0200
+++ gdb-7.5.50.20130310/gdb/mep-tdep.c 2013-03-10 16:44:42.122599843 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/mep-tdep.c 2013-08-02 16:43:04.735681021 +0200
@@ -2279,7 +2279,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,11 +659,11 @@ Index: gdb-7.5.50.20130310/gdb/mep-tdep.c
if (arg_len > MEP_GPR_SIZE) if (arg_len > MEP_GPR_SIZE)
{ {
Index: gdb-7.5.50.20130310/gdb/mips-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/mips-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/mips-tdep.c 2013-02-24 13:54:04.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/mips-tdep.c 2013-08-02 16:43:01.153676128 +0200
+++ gdb-7.5.50.20130310/gdb/mips-tdep.c 2013-03-10 16:44:42.123599844 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/mips-tdep.c 2013-08-02 16:43:04.737681023 +0200
@@ -396,7 +396,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,
enum bfd_endian endian, gdb_byte *in, enum bfd_endian endian, gdb_byte *in,
@ -672,7 +672,7 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
{ {
int reg_offset = 0; int reg_offset = 0;
@@ -419,8 +419,8 @@ mips_xfer_register (struct gdbarch *gdba @@ -425,8 +425,8 @@ mips_xfer_register (struct gdbarch *gdba
} }
if (mips_debug) if (mips_debug)
fprintf_unfiltered (gdb_stderr, fprintf_unfiltered (gdb_stderr,
@ -683,7 +683,7 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
if (mips_debug && out != NULL) if (mips_debug && out != NULL)
{ {
int i; int i;
@@ -4346,13 +4346,13 @@ mips_eabi_push_dummy_call (struct gdbarc @@ -4345,13 +4345,13 @@ mips_eabi_push_dummy_call (struct gdbarc
gdb_byte valbuf[MAX_REGISTER_SIZE]; gdb_byte valbuf[MAX_REGISTER_SIZE];
struct value *arg = args[argnum]; struct value *arg = args[argnum];
struct type *arg_type = check_typedef (value_type (arg)); struct type *arg_type = check_typedef (value_type (arg));
@ -700,7 +700,7 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
/* Function pointer arguments to mips16 code need to be made into /* Function pointer arguments to mips16 code need to be made into
mips16 pointers. */ mips16 pointers. */
@@ -4637,7 +4637,7 @@ mips_eabi_return_value (struct gdbarch * @@ -4636,7 +4636,7 @@ mips_eabi_return_value (struct gdbarch *
static int static int
mips_n32n64_fp_arg_chunk_p (struct gdbarch *gdbarch, struct type *arg_type, mips_n32n64_fp_arg_chunk_p (struct gdbarch *gdbarch, struct type *arg_type,
@ -709,7 +709,7 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
{ {
int i; int i;
@@ -4652,7 +4652,7 @@ mips_n32n64_fp_arg_chunk_p (struct gdbar @@ -4651,7 +4651,7 @@ mips_n32n64_fp_arg_chunk_p (struct gdbar
for (i = 0; i < TYPE_NFIELDS (arg_type); i++) for (i = 0; i < TYPE_NFIELDS (arg_type); i++)
{ {
@ -718,7 +718,7 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
struct type *field_type; struct type *field_type;
/* We're only looking at normal fields. */ /* We're only looking at normal fields. */
@@ -4694,7 +4694,7 @@ mips_n32n64_push_dummy_call (struct gdba @@ -4693,7 +4693,7 @@ mips_n32n64_push_dummy_call (struct gdba
int argreg; int argreg;
int float_argreg; int float_argreg;
int argnum; int argnum;
@ -727,7 +727,7 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
int stack_offset = 0; int stack_offset = 0;
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
CORE_ADDR func_addr = find_function_addr (function, NULL); CORE_ADDR func_addr = find_function_addr (function, NULL);
@@ -5045,11 +5045,11 @@ mips_n32n64_return_value (struct gdbarch @@ -5044,11 +5044,11 @@ mips_n32n64_return_value (struct gdbarch
: MIPS_V0_REGNUM); : MIPS_V0_REGNUM);
field < TYPE_NFIELDS (type); field++, regnum += 2) field < TYPE_NFIELDS (type); field++, regnum += 2)
{ {
@ -743,7 +743,7 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
if (TYPE_LENGTH (TYPE_FIELD_TYPE (type, field)) == 16) if (TYPE_LENGTH (TYPE_FIELD_TYPE (type, field)) == 16)
{ {
/* A 16-byte long double field goes in two consecutive /* A 16-byte long double field goes in two consecutive
@@ -5091,8 +5091,8 @@ mips_n32n64_return_value (struct gdbarch @@ -5090,8 +5090,8 @@ mips_n32n64_return_value (struct gdbarch
if (offset + xfer > TYPE_LENGTH (type)) if (offset + xfer > TYPE_LENGTH (type))
xfer = TYPE_LENGTH (type) - offset; xfer = TYPE_LENGTH (type) - offset;
if (mips_debug) if (mips_debug)
@ -754,7 +754,7 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
mips_xfer_register (gdbarch, regcache, mips_xfer_register (gdbarch, regcache,
gdbarch_num_regs (gdbarch) + regnum, gdbarch_num_regs (gdbarch) + regnum,
xfer, BFD_ENDIAN_UNKNOWN, readbuf, writebuf, xfer, BFD_ENDIAN_UNKNOWN, readbuf, writebuf,
@@ -5150,7 +5150,7 @@ mips_o32_push_dummy_call (struct gdbarch @@ -5149,7 +5149,7 @@ mips_o32_push_dummy_call (struct gdbarch
int argreg; int argreg;
int float_argreg; int float_argreg;
int argnum; int argnum;
@ -763,7 +763,7 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
int stack_offset = 0; int stack_offset = 0;
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
CORE_ADDR func_addr = find_function_addr (function, NULL); CORE_ADDR func_addr = find_function_addr (function, NULL);
@@ -5214,13 +5214,13 @@ mips_o32_push_dummy_call (struct gdbarch @@ -5213,13 +5213,13 @@ mips_o32_push_dummy_call (struct gdbarch
const gdb_byte *val; const gdb_byte *val;
struct value *arg = args[argnum]; struct value *arg = args[argnum];
struct type *arg_type = check_typedef (value_type (arg)); struct type *arg_type = check_typedef (value_type (arg));
@ -780,7 +780,7 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
val = value_contents (arg); val = value_contents (arg);
@@ -5678,8 +5678,8 @@ mips_o64_push_dummy_call (struct gdbarch @@ -5677,8 +5677,8 @@ mips_o64_push_dummy_call (struct gdbarch
int argreg; int argreg;
int float_argreg; int float_argreg;
int argnum; int argnum;
@ -791,7 +791,7 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
CORE_ADDR func_addr = find_function_addr (function, NULL); CORE_ADDR func_addr = find_function_addr (function, NULL);
@@ -5740,13 +5740,13 @@ mips_o64_push_dummy_call (struct gdbarch @@ -5739,13 +5739,13 @@ mips_o64_push_dummy_call (struct gdbarch
gdb_byte valbuf[MAX_REGISTER_SIZE]; gdb_byte valbuf[MAX_REGISTER_SIZE];
struct value *arg = args[argnum]; struct value *arg = args[argnum];
struct type *arg_type = check_typedef (value_type (arg)); struct type *arg_type = check_typedef (value_type (arg));
@ -808,23 +808,23 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
val = value_contents (arg); val = value_contents (arg);
Index: gdb-7.5.50.20130310/gdb/mn10300-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/mn10300-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/mn10300-tdep.c 2013-03-01 16:38:25.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/mn10300-tdep.c 2013-08-02 16:43:04.737681023 +0200
+++ gdb-7.5.50.20130310/gdb/mn10300-tdep.c 2013-03-10 16:44:42.123599844 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/mn10300-tdep.c 2013-08-02 16:50:34.212320698 +0200
@@ -1228,7 +1228,7 @@ mn10300_push_dummy_call (struct gdbarch @@ -1228,7 +1228,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;
- int len, arg_len; - int len, arg_len;
+ LONGEST len, arg_len; + LONGEST len, arg_len;
int stack_offset = 0; int stack_offset = 0;
int argnum; int argnum;
char *val, valbuf[MAX_REGISTER_SIZE]; const gdb_byte *val;
Index: gdb-7.5.50.20130310/gdb/mt-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/mt-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/mt-tdep.c 2013-01-01 07:32:47.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/mt-tdep.c 2013-08-02 16:43:01.154676130 +0200
+++ gdb-7.5.50.20130310/gdb/mt-tdep.c 2013-03-10 16:44:42.124599844 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/mt-tdep.c 2013-08-02 16:43:04.737681023 +0200
@@ -783,9 +783,9 @@ mt_push_dummy_call (struct gdbarch *gdba @@ -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.5.50.20130310/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.5.50.20130310/gdb/ppc-sysv-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/ppc-sysv-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/ppc-sysv-tdep.c 2013-01-23 21:03:18.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/ppc-sysv-tdep.c 2013-08-02 16:43:01.155676131 +0200
+++ gdb-7.5.50.20130310/gdb/ppc-sysv-tdep.c 2013-03-10 16:44:42.124599844 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/ppc-sysv-tdep.c 2013-08-02 16:43:04.738681025 +0200
@@ -68,7 +68,7 @@ ppc_sysv_abi_push_dummy_call (struct gdb @@ -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));
@ -871,7 +871,7 @@ Index: gdb-7.5.50.20130310/gdb/ppc-sysv-tdep.c
const bfd_byte *val = value_contents (arg); const bfd_byte *val = value_contents (arg);
if (TYPE_CODE (type) == TYPE_CODE_FLT && len <= 8 if (TYPE_CODE (type) == TYPE_CODE_FLT && len <= 8
@@ -1556,14 +1556,14 @@ ppc64_sysv_abi_push_dummy_call (struct g @@ -1613,14 +1613,14 @@ ppc64_sysv_abi_push_dummy_call (struct g
} }
else else
{ {
@ -888,7 +888,7 @@ Index: gdb-7.5.50.20130310/gdb/ppc-sysv-tdep.c
if (len > tdep->wordsize) if (len > tdep->wordsize)
len = tdep->wordsize; len = tdep->wordsize;
memset (regval, 0, sizeof regval); memset (regval, 0, sizeof regval);
@@ -1591,7 +1591,7 @@ ppc64_sysv_abi_push_dummy_call (struct g @@ -1648,7 +1648,7 @@ ppc64_sysv_abi_push_dummy_call (struct g
register. Work around this by always writing the register. Work around this by always writing the
value to memory. Fortunately, doing this value to memory. Fortunately, doing this
simplifies the code. */ simplifies the code. */
@ -897,11 +897,11 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/rl78-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/rl78-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/rl78-tdep.c 2013-01-01 07:32:50.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/rl78-tdep.c 2013-08-02 16:43:01.155676131 +0200
+++ gdb-7.5.50.20130310/gdb/rl78-tdep.c 2013-03-10 16:44:42.124599844 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/rl78-tdep.c 2013-08-02 16:43:04.738681025 +0200
@@ -1019,8 +1019,8 @@ rl78_push_dummy_call (struct gdbarch *gd @@ -1030,8 +1030,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,11 +912,11 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/rs6000-aix-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-aix-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/rs6000-aix-tdep.c 2013-01-01 07:32:50.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/rs6000-aix-tdep.c 2013-08-02 16:43:01.155676131 +0200
+++ gdb-7.5.50.20130310/gdb/rs6000-aix-tdep.c 2013-03-10 16:44:42.125599845 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/rs6000-aix-tdep.c 2013-08-02 16:43:04.738681025 +0200
@@ -198,9 +198,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);
int ii; int ii;
@ -928,7 +928,7 @@ Index: gdb-7.5.50.20130310/gdb/rs6000-aix-tdep.c
gdb_byte tmp_buffer[50]; gdb_byte tmp_buffer[50];
int f_argno = 0; /* current floating point argno */ int f_argno = 0; /* current floating point argno */
int wordsize = gdbarch_tdep (gdbarch)->wordsize; int wordsize = gdbarch_tdep (gdbarch)->wordsize;
@@ -328,7 +328,7 @@ ran_out_of_registers_for_arguments: @@ -331,7 +331,7 @@ ran_out_of_registers_for_arguments:
if ((argno < nargs) || argbytes) if ((argno < nargs) || argbytes)
{ {
@ -937,11 +937,11 @@ Index: gdb-7.5.50.20130310/gdb/rs6000-aix-tdep.c
if (argbytes) if (argbytes)
{ {
Index: gdb-7.5.50.20130310/gdb/s390-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/s390-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/s390-tdep.c 2013-01-01 07:32:50.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/s390-tdep.c 2013-08-02 16:43:01.156676132 +0200
+++ gdb-7.5.50.20130310/gdb/s390-tdep.c 2013-03-10 16:44:42.125599845 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/s390-tdep.c 2013-08-02 16:43:04.739681026 +0200
@@ -2482,7 +2482,7 @@ is_float_like (struct type *type) @@ -2483,7 +2483,7 @@ is_float_like (struct type *type)
static int static int
@ -950,7 +950,7 @@ Index: gdb-7.5.50.20130310/gdb/s390-tdep.c
{ {
return ((n & (n - 1)) == 0); return ((n & (n - 1)) == 0);
} }
@@ -2668,7 +2668,7 @@ s390_push_dummy_call (struct gdbarch *gd @@ -2669,7 +2669,7 @@ s390_push_dummy_call (struct gdbarch *gd
{ {
struct value *arg = args[i]; struct 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.5.50.20130310/gdb/s390-tdep.c
if (s390_function_arg_pass_by_reference (type)) if (s390_function_arg_pass_by_reference (type))
{ {
Index: gdb-7.5.50.20130310/gdb/score-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/score-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/score-tdep.c 2013-03-01 16:38:26.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/score-tdep.c 2013-08-02 16:43:01.157676134 +0200
+++ gdb-7.5.50.20130310/gdb/score-tdep.c 2013-03-10 16:44:42.125599845 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/score-tdep.c 2013-08-02 16:43:04.739681026 +0200
@@ -515,7 +515,7 @@ score_push_dummy_call (struct gdbarch *g @@ -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.5.50.20130310/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.5.50.20130310/gdb/sh-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/sh-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/sh-tdep.c 2013-01-01 07:32:50.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/sh-tdep.c 2013-08-02 16:43:01.157676134 +0200
+++ gdb-7.5.50.20130310/gdb/sh-tdep.c 2013-03-10 16:44:42.126599845 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/sh-tdep.c 2013-08-02 16:51:29.604404553 +0200
@@ -807,7 +807,7 @@ sh_skip_prologue (struct gdbarch *gdbarc @@ -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)
@ -988,36 +988,36 @@ Index: gdb-7.5.50.20130310/gdb/sh-tdep.c
@@ -909,7 +909,7 @@ sh_frame_align (struct gdbarch *ignore, @@ -909,7 +909,7 @@ sh_frame_align (struct gdbarch *ignore,
/* Helper function to justify value in register according to endianess. */ /* Helper function to justify value in register according to endianess. */
static char * static const gdb_byte *
-sh_justify_value_in_reg (struct gdbarch *gdbarch, struct value *val, int len) -sh_justify_value_in_reg (struct gdbarch *gdbarch, struct value *val, int len)
+sh_justify_value_in_reg (struct gdbarch *gdbarch, struct value *val, LONGEST len) +sh_justify_value_in_reg (struct gdbarch *gdbarch, struct value *val, LONGEST len)
{ {
static char valbuf[4]; static gdb_byte valbuf[4];
@@ -1069,7 +1069,8 @@ sh_push_dummy_call_fpu (struct gdbarch * @@ -1069,7 +1069,8 @@ sh_push_dummy_call_fpu (struct gdbarch *
struct type *type; struct type *type;
CORE_ADDR regval; CORE_ADDR regval;
char *val; const gdb_byte *val;
- int len, reg_size = 0; - int len, reg_size = 0;
+ LONGEST len; + LONGEST len;
+ ssize_t reg_size = 0; + int reg_size = 0;
int pass_on_stack = 0; int pass_on_stack = 0;
int treat_as_flt; int treat_as_flt;
int last_reg_arg = INT_MAX; int last_reg_arg = INT_MAX;
@@ -1210,7 +1211,8 @@ sh_push_dummy_call_nofpu (struct gdbarch @@ -1210,7 +1211,8 @@ sh_push_dummy_call_nofpu (struct gdbarch
struct type *type; struct type *type;
CORE_ADDR regval; CORE_ADDR regval;
char *val; const gdb_byte *val;
- int len, reg_size = 0; - int len, reg_size = 0;
+ LONGEST len; + LONGEST len;
+ ssize_t reg_size = 0; + int reg_size = 0;
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.5.50.20130310/gdb/sh64-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/sh64-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/sh64-tdep.c 2013-03-01 16:38:26.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/sh64-tdep.c 2013-08-02 16:43:01.158676135 +0200
+++ gdb-7.5.50.20130310/gdb/sh64-tdep.c 2013-03-10 16:44:42.126599845 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/sh64-tdep.c 2013-08-02 16:50:49.740344125 +0200
@@ -1058,7 +1058,7 @@ sh64_push_dummy_call (struct gdbarch *gd @@ -1058,7 +1058,7 @@ sh64_push_dummy_call (struct gdbarch *gd
CORE_ADDR struct_addr) CORE_ADDR struct_addr)
{ {
@ -1029,17 +1029,17 @@ Index: gdb-7.5.50.20130310/gdb/sh64-tdep.c
int double_argreg; int double_argreg;
@@ -1069,7 +1069,7 @@ sh64_push_dummy_call (struct gdbarch *gd @@ -1069,7 +1069,7 @@ sh64_push_dummy_call (struct gdbarch *gd
CORE_ADDR regval; CORE_ADDR regval;
char *val; const gdb_byte *val;
char valbuf[8]; gdb_byte valbuf[8];
- int len; - int len;
+ LONGEST len; + LONGEST len;
int argreg_size; int argreg_size;
int fp_args[12]; int fp_args[12];
Index: gdb-7.5.50.20130310/gdb/sparc-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/sparc-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/sparc-tdep.c 2013-03-10 16:44:33.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/sparc-tdep.c 2013-08-02 16:43:01.159676136 +0200
+++ gdb-7.5.50.20130310/gdb/sparc-tdep.c 2013-03-10 16:44:42.127599846 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/sparc-tdep.c 2013-08-02 16:43:04.740681027 +0200
@@ -471,7 +471,7 @@ sparc32_store_arguments (struct regcache @@ -471,7 +471,7 @@ sparc32_store_arguments (struct regcache
for (i = 0; i < nargs; i++) for (i = 0; i < nargs; i++)
{ {
@ -1049,10 +1049,10 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/sparc64-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/sparc64-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/sparc64-tdep.c 2013-01-01 07:32:51.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/sparc64-tdep.c 2013-08-02 16:43:01.159676136 +0200
+++ gdb-7.5.50.20130310/gdb/sparc64-tdep.c 2013-03-10 16:44:42.127599846 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/sparc64-tdep.c 2013-08-02 16:43:04.741681029 +0200
@@ -639,7 +639,8 @@ sparc64_16_byte_align_p (struct type *ty @@ -639,7 +639,8 @@ sparc64_16_byte_align_p (struct type *ty
static void static void
@ -1108,11 +1108,11 @@ Index: gdb-7.5.50.20130310/gdb/sparc64-tdep.c
int regnum = -1; int regnum = -1;
gdb_byte buf[16]; gdb_byte buf[16];
Index: gdb-7.5.50.20130310/gdb/spu-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/spu-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/spu-tdep.c 2013-01-01 07:32:51.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/spu-tdep.c 2013-08-02 16:43:01.160676138 +0200
+++ gdb-7.5.50.20130310/gdb/spu-tdep.c 2013-03-10 16:44:42.127599846 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/spu-tdep.c 2013-08-02 16:43:04.741681029 +0200
@@ -1373,7 +1373,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));
const gdb_byte *contents = value_contents (arg); const gdb_byte *contents = value_contents (arg);
@ -1121,7 +1121,7 @@ Index: gdb-7.5.50.20130310/gdb/spu-tdep.c
/* If the argument doesn't wholly fit into registers, it and /* If the argument doesn't wholly fit into registers, it and
all subsequent arguments go to the stack. */ all subsequent arguments go to the stack. */
@@ -1405,7 +1405,7 @@ spu_push_dummy_call (struct gdbarch *gdb @@ -1408,7 +1408,7 @@ spu_push_dummy_call (struct gdbarch *gdb
{ {
struct value *arg = args[i]; struct 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.5.50.20130310/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.5.50.20130310/gdb/tic6x-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/tic6x-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/tic6x-tdep.c 2013-03-01 16:38:27.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/tic6x-tdep.c 2013-08-02 16:43:01.160676138 +0200
+++ gdb-7.5.50.20130310/gdb/tic6x-tdep.c 2013-03-10 16:44:42.128599846 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/tic6x-tdep.c 2013-08-02 16:43:04.742681030 +0200
@@ -896,7 +896,7 @@ tic6x_push_dummy_call (struct gdbarch *g @@ -896,7 +896,7 @@ tic6x_push_dummy_call (struct gdbarch *g
int argreg = 0; int argreg = 0;
int argnum; int argnum;
@ -1171,10 +1171,10 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/tilegx-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/tilegx-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/tilegx-tdep.c 2013-03-02 02:34:40.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/tilegx-tdep.c 2013-08-02 16:43:01.161676139 +0200
+++ gdb-7.5.50.20130310/gdb/tilegx-tdep.c 2013-03-10 16:45:31.857629100 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/tilegx-tdep.c 2013-08-02 16:43:04.742681030 +0200
@@ -291,7 +291,7 @@ tilegx_push_dummy_call (struct gdbarch * @@ -291,7 +291,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;
@ -1184,11 +1184,11 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/v850-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/v850-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/v850-tdep.c 2013-03-02 19:26:30.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/v850-tdep.c 2013-08-02 16:43:01.161676139 +0200
+++ gdb-7.5.50.20130310/gdb/v850-tdep.c 2013-03-10 16:44:42.128599846 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/v850-tdep.c 2013-08-02 16:52:55.219531101 +0200
@@ -817,7 +817,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;
int argnum; int argnum;
@ -1196,8 +1196,8 @@ Index: gdb-7.5.50.20130310/gdb/v850-tdep.c
+ LONGEST len = 0; + LONGEST len = 0;
int stack_offset; int stack_offset;
/* The offset onto the stack at which we will start copying parameters if (gdbarch_tdep (gdbarch)->abi == V850_ABI_RH850)
@@ -842,7 +842,7 @@ v850_push_dummy_call (struct gdbarch *gd @@ -1049,7 +1049,7 @@ v850_push_dummy_call (struct gdbarch *gd
in four registers available. Loop thru args from first to last. */ in four registers available. Loop thru args from first to last. */
for (argnum = 0; argnum < nargs; argnum++) for (argnum = 0; argnum < nargs; argnum++)
{ {
@ -1206,10 +1206,10 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/vax-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/vax-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/vax-tdep.c 2013-03-10 16:44:34.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/vax-tdep.c 2013-08-02 16:43:01.161676139 +0200
+++ gdb-7.5.50.20130310/gdb/vax-tdep.c 2013-03-10 16:44:42.128599846 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/vax-tdep.c 2013-08-02 16:43:04.742681030 +0200
@@ -115,7 +115,7 @@ vax_store_arguments (struct regcache *re @@ -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.5.50.20130310/gdb/vax-tdep.c
sp -= (len + 3) & ~3; sp -= (len + 3) & ~3;
count += (len + 3) / 4; count += (len + 3) / 4;
Index: gdb-7.5.50.20130310/gdb/xstormy16-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/xstormy16-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/xstormy16-tdep.c 2013-03-01 16:38:27.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/xstormy16-tdep.c 2013-08-02 16:43:01.162676141 +0200
+++ gdb-7.5.50.20130310/gdb/xstormy16-tdep.c 2013-03-10 16:46:05.888653201 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/xstormy16-tdep.c 2013-08-02 16:43:04.743681032 +0200
@@ -235,8 +235,9 @@ xstormy16_push_dummy_call (struct gdbarc @@ -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,10 +1244,10 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/xtensa-tdep.c Index: gdb-7.6.50.20130731-cvs/gdb/xtensa-tdep.c
=================================================================== ===================================================================
--- gdb-7.5.50.20130310.orig/gdb/xtensa-tdep.c 2013-01-01 07:41:29.000000000 +0100 --- gdb-7.6.50.20130731-cvs.orig/gdb/xtensa-tdep.c 2013-08-02 16:43:01.163676142 +0200
+++ gdb-7.5.50.20130310/gdb/xtensa-tdep.c 2013-03-10 16:44:42.129599847 +0100 +++ gdb-7.6.50.20130731-cvs/gdb/xtensa-tdep.c 2013-08-02 16:43:04.743681032 +0200
@@ -1653,8 +1653,7 @@ xtensa_store_return_value (struct type * @@ -1653,8 +1653,7 @@ xtensa_store_return_value (struct type *
if (len > (callsize > 8 ? 8 : 16)) if (len > (callsize > 8 ? 8 : 16))

View File

@ -6,8 +6,10 @@ http://sourceware.org/ml/gdb-patches/2010-08/msg00085.html
http://sourceware.org/ml/gdb-cvs/2010-08/msg00026.html http://sourceware.org/ml/gdb-cvs/2010-08/msg00026.html
2e5bcfdef1ec3883d48c3f87a4be5c0dff25e17e 2e5bcfdef1ec3883d48c3f87a4be5c0dff25e17e
--- /dev/null Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/x86_64-pid0-core.core.bz2.uu
+++ b/gdb/testsuite/gdb.arch/x86_64-pid0-core.core.bz2.uu ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/x86_64-pid0-core.core.bz2.uu 2013-08-02 22:14:50.748990883 +0200
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
+begin 600 x86_64-pid0-core.core.bz2 +begin 600 x86_64-pid0-core.core.bz2
+M0EIH.3%!629362,CA>P!$/'_____^*#EZ-A!SP36P&_:G0#=14``04A&8,'U +M0EIH.3%!629362,CA>P!$/'_____^*#EZ-A!SP36P&_:G0#=14``04A&8,'U
@ -29,8 +31,10 @@ http://sourceware.org/ml/gdb-cvs/2010-08/msg00026.html
+4B.Z!/,0-IZ^W_Q=R13A0D",CA>P` +4B.Z!/,0-IZ^W_Q=R13A0D",CA>P`
+` +`
+end +end
--- /dev/null Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/x86_64-pid0-core.exp
+++ b/gdb/testsuite/gdb.arch/x86_64-pid0-core.exp ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/x86_64-pid0-core.exp 2013-08-02 22:17:30.575209385 +0200
@@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
+# This testcase is part of GDB, the GNU debugger. +# This testcase is part of GDB, the GNU debugger.
+# +#
@ -77,4 +81,4 @@ http://sourceware.org/ml/gdb-cvs/2010-08/msg00026.html
+ +
+# Former crash was: +# Former crash was:
+# thread.c:884: internal-error: switch_to_thread: Assertion `inf != NULL' failed. +# thread.c:884: internal-error: switch_to_thread: Assertion `inf != NULL' failed.
+gdb_test "core-file ${corefile}" "Program terminated with signal 11, Segmentation fault\\.\r\n.*" +gdb_test "core-file ${corefile}" "Program terminated with signal (11|SIGSEGV), Segmentation fault\\.\r\n.*"

File diff suppressed because it is too large Load Diff

View File

@ -1,175 +0,0 @@
http://sourceware.org/ml/gdb-cvs/2013-05/msg00141.html
### src/gdb/ChangeLog 2013/05/17 06:58:33 1.15565
### src/gdb/ChangeLog 2013/05/17 08:34:18 1.15566
## -1,3 +1,18 @@
+2013-05-17 Phil Muldoon <pmuldoon@redhat.com>
+
+ * frame.c (frame_stash): Convert to htab.
+ (frame_addr_hash): New function.
+ (frame_addr_hash_eq): New function.
+ (frame_stash_create): Convert function to create
+ a hash table.
+ (frame_stash_add): Convert function to add an entry to a hash
+ table.
+ (frame_stash_find): Convert function to search the hash table.
+ (frame_stash_invalidate): Convert function to empty the hash
+ table.
+ (get_frame_id): Only add to stash if a frame_id is created.
+ (_initialize_frame): Call frame_stash_create.
+
2013-05-16 Yue Lu <hacklu.newborn@gmail.com> (tiny change)
* configure.ac: Ensure MIG is available when building for GNU Hurd
--- src/gdb/frame.c 2013/04/10 15:11:11 1.317
+++ src/gdb/frame.c 2013/05/17 08:34:18 1.318
@@ -43,6 +43,7 @@
#include "block.h"
#include "inline-frame.h"
#include "tracepoint.h"
+#include "hashtab.h"
static struct frame_info *get_prev_frame_1 (struct frame_info *this_frame);
static struct frame_info *get_prev_frame_raw (struct frame_info *this_frame);
@@ -128,38 +129,107 @@
enum unwind_stop_reason stop_reason;
};
-/* A frame stash used to speed up frame lookups. */
+/* A frame stash used to speed up frame lookups. Create a hash table
+ to stash frames previously accessed from the frame cache for
+ quicker subsequent retrieval. The hash table is emptied whenever
+ the frame cache is invalidated. */
+
+static htab_t frame_stash;
+
+/* Internal function to calculate a hash from the frame_id addresses,
+ using as many valid addresses as possible. Frames below level 0
+ are not stored in the hash table. */
+
+static hashval_t
+frame_addr_hash (const void *ap)
+{
+ const struct frame_info *frame = ap;
+ const struct frame_id f_id = frame->this_id.value;
+ hashval_t hash = 0;
+
+ gdb_assert (f_id.stack_addr_p || f_id.code_addr_p
+ || f_id.special_addr_p);
+
+ if (f_id.stack_addr_p)
+ hash = iterative_hash (&f_id.stack_addr,
+ sizeof (f_id.stack_addr), hash);
+ if (f_id.code_addr_p)
+ hash = iterative_hash (&f_id.code_addr,
+ sizeof (f_id.code_addr), hash);
+ if (f_id.special_addr_p)
+ hash = iterative_hash (&f_id.special_addr,
+ sizeof (f_id.special_addr), hash);
-/* We currently only stash one frame at a time, as this seems to be
- sufficient for now. */
-static struct frame_info *frame_stash = NULL;
+ return hash;
+}
+
+/* Internal equality function for the hash table. This function
+ defers equality operations to frame_id_eq. */
+
+static int
+frame_addr_hash_eq (const void *a, const void *b)
+{
+ const struct frame_info *f_entry = a;
+ const struct frame_info *f_element = b;
-/* Add the following FRAME to the frame stash. */
+ return frame_id_eq (f_entry->this_id.value,
+ f_element->this_id.value);
+}
+
+/* Internal function to create the frame_stash hash table. 100 seems
+ to be a good compromise to start the hash table at. */
+
+static void
+frame_stash_create (void)
+{
+ frame_stash = htab_create (100,
+ frame_addr_hash,
+ frame_addr_hash_eq,
+ NULL);
+}
+
+/* Internal function to add a frame to the frame_stash hash table. Do
+ not store frames below 0 as they may not have any addresses to
+ calculate a hash. */
static void
frame_stash_add (struct frame_info *frame)
{
- frame_stash = frame;
+ /* Do not stash frames below level 0. */
+ if (frame->level >= 0)
+ {
+ struct frame_info **slot;
+
+ slot = (struct frame_info **) htab_find_slot (frame_stash,
+ frame,
+ INSERT);
+ *slot = frame;
+ }
}
-/* Search the frame stash for an entry with the given frame ID.
- If found, return that frame. Otherwise return NULL. */
+/* Internal function to search the frame stash for an entry with the
+ given frame ID. If found, return that frame. Otherwise return
+ NULL. */
static struct frame_info *
frame_stash_find (struct frame_id id)
{
- if (frame_stash && frame_id_eq (frame_stash->this_id.value, id))
- return frame_stash;
+ struct frame_info dummy;
+ struct frame_info *frame;
- return NULL;
+ dummy.this_id.value = id;
+ frame = htab_find (frame_stash, &dummy);
+ return frame;
}
-/* Invalidate the frame stash by removing all entries in it. */
+/* Internal function to invalidate the frame stash by removing all
+ entries in it. This only occurs when the frame cache is
+ invalidated. */
static void
frame_stash_invalidate (void)
{
- frame_stash = NULL;
+ htab_empty (frame_stash);
}
/* Flag to control debugging. */
@@ -345,10 +415,9 @@
fprint_frame_id (gdb_stdlog, fi->this_id.value);
fprintf_unfiltered (gdb_stdlog, " }\n");
}
+ frame_stash_add (fi);
}
- frame_stash_add (fi);
-
return fi->this_id.value;
}
@@ -2451,6 +2520,8 @@
{
obstack_init (&frame_cache_obstack);
+ frame_stash_create ();
+
observer_attach_target_changed (frame_observer_target_changed);
add_prefix_cmd ("backtrace", class_maintenance, set_backtrace_cmd, _("\

View File

@ -1,690 +0,0 @@
http://sourceware.org/ml/gdb-cvs/2013-04/msg00109.html
### src/gdb/ChangeLog 2013/04/11 13:14:04 1.15397
### src/gdb/ChangeLog 2013/04/11 14:13:42 1.15398
## -1,4 +1,28 @@
2013-04-11 Jan Kratochvil <jan.kratochvil@redhat.com>
+ Pedro Alves <palves@redhat.com>
+
+ * Makefile.in (HAVE_NATIVE_GCORE_TARGET): New.
+ (generated_files): Add gcore.
+ (install-only, uninstall): Add gcore if HAVE_NATIVE_GCORE_TARGET or
+ HAVE_NATIVE_GCORE_HOST.
+ (gcore): New.
+ * NEWS (Changes since GDB 7.6): Mention newly installed gcore.
+ * config/alpha/alpha-osf3.mh, config/i386/fbsd.mh,
+ config/i386/fbsd64.mh, config/i386/i386gnu.mh, config/i386/i386sol2.mh,
+ config/i386/sol2-64.mh, config/mips/irix5.mh, config/mips/irix6.mh,
+ config/powerpc/fbsd.mh, config/sparc/fbsd.mh, config/sparc/sol2.mh:
+ Add HAVE_NATIVE_GCORE_HOST.
+ * configure: Regenerate.
+ * configure.ac (HAVE_NATIVE_GCORE_TARGET): New, set it, AC_SUBST it.
+ New AC_SUBST fir GDB_TRANSFORM_NAME and GCORE_TRANSFORM_NAME. New
+ AC_CONFIG_FILES for gcore.
+ * configure.tgt: Add gdb_have_gcore to the initial comment. Set
+ gdb_have_gcore.
+ * gdb_gcore.sh: Rename to ...
+ * gcore.in: ... here. Remove gcore.sh comment. Use GDB_TRANSFORM_NAME
+ and GCORE_TRANSFORM_NAME substitutions.
+
+2013-04-11 Jan Kratochvil <jan.kratochvil@redhat.com>
* remote.c (unpush_and_perror): Add output message final dot.
### src/gdb/doc/ChangeLog 2013/04/10 15:11:12 1.1440
### src/gdb/doc/ChangeLog 2013/04/11 14:13:44 1.1441
## -1,3 +1,13 @@
+2013-04-11 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * Makefile.in (MAN1S): Add gcore.1.
+ Remove "Host, target, and site specific Makefile fragments" comment.
+ (@host_makefile_frag@, HAVE_NATIVE_GCORE_TARGET): New.
+ (install-man1, uninstall-man1): Conditionalize gcore.1.
+ (gcore.1): New.
+ * gdb.texinfo (Man Pages): Add gcore man.
+ (gcore man): New node.
+
2013-04-10 Pedro Alves <palves@redhat.com>
* gdb.texinfo (Process Record and Replay): Document that "set
Index: gdb-7.6/gdb/gcore.in
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-7.6/gdb/gcore.in 2013-04-26 15:33:01.171049247 +0200
@@ -0,0 +1,69 @@
+#!/bin/sh
+
+# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+#
+# Script to generate a core file of a running program.
+# It starts up gdb, attaches to the given PID and invokes the gcore command.
+#
+
+if [ "$#" -eq "0" ]
+then
+ echo "usage: @GCORE_TRANSFORM_NAME@ [-o filename] pid"
+ exit 2
+fi
+
+# Need to check for -o option, but set default basename to "core".
+name=core
+
+if [ "$1" = "-o" ]
+then
+ if [ "$#" -lt "3" ]
+ then
+ # Not enough arguments.
+ echo "usage: @GCORE_TRANSFORM_NAME@ [-o filename] pid"
+ exit 2
+ fi
+ name=$2
+
+ # Shift over to start of pid list
+ shift; shift
+fi
+
+# Initialise return code.
+rc=0
+
+# Loop through pids
+for pid in $*
+do
+ # `</dev/null' to avoid touching interactive terminal if it is
+ # available but not accessible as GDB would get stopped on SIGTTIN.
+ @GDB_TRANSFORM_NAME@ </dev/null --nx --batch \
+ -ex "set pagination off" -ex "set height 0" -ex "set width 0" \
+ -ex "attach $pid" -ex "gcore $name.$pid" -ex detach -ex quit
+
+ if [ -r $name.$pid ] ; then
+ rc=0
+ else
+ echo "@GCORE_TRANSFORM_NAME@: failed to create $name.$pid"
+ rc=1
+ break
+ fi
+
+
+done
+
+exit $rc
Index: gdb-7.6/gdb/gdb_gcore.sh
===================================================================
--- gdb-7.6.orig/gdb/gdb_gcore.sh 2013-01-01 07:32:42.000000000 +0100
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,70 +0,0 @@
-#!/bin/sh
-
-# Copyright (C) 2003-2013 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-#
-# gcore.sh
-# Script to generate a core file of a running program.
-# It starts up gdb, attaches to the given PID and invokes the gcore command.
-#
-
-if [ "$#" -eq "0" ]
-then
- echo "usage: gcore [-o filename] pid"
- exit 2
-fi
-
-# Need to check for -o option, but set default basename to "core".
-name=core
-
-if [ "$1" = "-o" ]
-then
- if [ "$#" -lt "3" ]
- then
- # Not enough arguments.
- echo "usage: gcore [-o filename] pid"
- exit 2
- fi
- name=$2
-
- # Shift over to start of pid list
- shift; shift
-fi
-
-# Initialise return code.
-rc=0
-
-# Loop through pids
-for pid in $*
-do
- # `</dev/null' to avoid touching interactive terminal if it is
- # available but not accessible as GDB would get stopped on SIGTTIN.
- gdb </dev/null --nx --batch \
- -ex "set pagination off" -ex "set height 0" -ex "set width 0" \
- -ex "attach $pid" -ex "gcore $name.$pid" -ex detach -ex quit
-
- if [ -r $name.$pid ] ; then
- rc=0
- else
- echo gcore: failed to create $name.$pid
- rc=1
- break
- fi
-
-
-done
-
-exit $rc
Index: gdb-7.6/gdb/Makefile.in
===================================================================
--- gdb-7.6.orig/gdb/Makefile.in 2013-04-26 15:32:58.000000000 +0200
+++ gdb-7.6/gdb/Makefile.in 2013-04-26 15:33:01.172049246 +0200
@@ -414,6 +414,7 @@ CONFIG_ALL= @CONFIG_ALL@
CONFIG_CLEAN= @CONFIG_CLEAN@
CONFIG_INSTALL = @CONFIG_INSTALL@
CONFIG_UNINSTALL = @CONFIG_UNINSTALL@
+HAVE_NATIVE_GCORE_TARGET = @HAVE_NATIVE_GCORE_TARGET@
# -I. for config files.
# -I$(srcdir) for gdb internal headers.
@@ -963,7 +964,7 @@ DISTSTUFF = $(YYFILES)
# All generated files which can be included by another file.
generated_files = config.h observer.h observer.inc ada-lex.c jit-reader.h \
- $(GNULIB_H) $(NAT_GENERATED_FILES)
+ $(GNULIB_H) $(NAT_GENERATED_FILES) gcore
.c.o:
$(COMPILE) $<
@@ -1039,6 +1040,19 @@ install-only: $(CONFIG_INSTALL)
$(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) ; \
$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(includedir)/gdb ; \
$(INSTALL_DATA) jit-reader.h $(DESTDIR)$(includedir)/gdb/jit-reader.h
+ if test "x$(HAVE_NATIVE_GCORE_TARGET)$(HAVE_NATIVE_GCORE_HOST)" != x; \
+ then \
+ transformed_name=`t='$(program_transform_name)'; \
+ echo gcore | sed -e "$$t"` ; \
+ if test "x$$transformed_name" = x; then \
+ transformed_name=gcore ; \
+ else \
+ true ; \
+ fi ; \
+ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir) ; \
+ $(INSTALL_PROGRAM) gcore \
+ $(DESTDIR)$(bindir)/$$transformed_name; \
+ fi
@$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
install-python:
@@ -1054,6 +1068,17 @@ uninstall: force $(CONFIG_UNINSTALL)
fi ; \
rm -f $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) \
$(DESTDIR)$(man1dir)/$$transformed_name.1
+ if test "x$(HAVE_NATIVE_GCORE_TARGET)$(HAVE_NATIVE_GCORE_HOST)" != x; \
+ then \
+ transformed_name=`t='$(program_transform_name)'; \
+ echo gcore | sed -e "$$t"` ; \
+ if test "x$$transformed_name" = x; then \
+ transformed_name=gcore ; \
+ else \
+ true ; \
+ fi ; \
+ rm -f $(DESTDIR)$(bindir)/$$transformed_name; \
+ fi
@$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
# The C++ name parser can be built standalone for testing.
@@ -1298,6 +1323,9 @@ data-directory/Makefile: data-directory/
jit-reader.h: $(srcdir)/jit-reader.in
$(SHELL) config.status $@
+gcore: $(srcdir)/gcore.in
+ $(SHELL) config.status $@
+
config.h: stamp-h ; @true
stamp-h: $(srcdir)/config.in config.status
CONFIG_HEADERS=config.h:config.in \
Index: gdb-7.6/gdb/NEWS
===================================================================
--- gdb-7.6.orig/gdb/NEWS 2013-04-26 13:43:30.000000000 +0200
+++ gdb-7.6/gdb/NEWS 2013-04-26 15:33:19.784032404 +0200
@@ -1,6 +1,9 @@
What has changed in GDB?
(Organized release by release)
+* Newly installed $prefix/bin/gcore acts as a shell interface for the
+ GDB command gcore.
+
*** Changes in GDB 7.6
* Target record has been renamed to record-full.
Index: gdb-7.6/gdb/configure
===================================================================
--- gdb-7.6.orig/gdb/configure 2013-03-12 23:25:32.000000000 +0100
+++ gdb-7.6/gdb/configure 2013-04-26 15:33:01.179049240 +0200
@@ -591,6 +591,8 @@ ac_includes_default="\
enable_option_checking=no
ac_subst_vars='LTLIBOBJS
LIBOBJS
+GCORE_TRANSFORM_NAME
+GDB_TRANSFORM_NAME
GDB_NM_FILE
frags
target_subdir
@@ -681,6 +683,7 @@ AWK
REPORT_BUGS_TEXI
REPORT_BUGS_TO
PKGVERSION
+HAVE_NATIVE_GCORE_TARGET
TARGET_OBS
subdirs
GDB_DATADIR
@@ -5075,6 +5078,7 @@ fi
TARGET_OBS=
all_targets=
+HAVE_NATIVE_GCORE_TARGET=
for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
do
@@ -5109,6 +5113,12 @@ fi
if test x${want64} = xfalse; then
. ${srcdir}/../bfd/config.bfd
fi
+
+ # Check whether this target is native and supports gcore.
+ if test $gdb_native = yes -a "$targ_alias" = "$target_alias" \
+ && $gdb_have_gcore; then
+ HAVE_NATIVE_GCORE_TARGET=1
+ fi
fi
done
@@ -5171,6 +5181,7 @@ fi
+
# For other settings, only the main target counts.
gdb_sim=
gdb_osabi=
@@ -14131,6 +14142,21 @@ ac_config_links="$ac_config_links $ac_co
$as_echo "#define GDB_DEFAULT_HOST_CHARSET \"UTF-8\"" >>confdefs.h
+# Undo the $ec_script escaping suitable for Makefile.
+transform=`echo "$program_transform_name" | sed -e 's/\\$\\$/\\$/g'`
+GDB_TRANSFORM_NAME=`echo gdb | sed -e "$transform"`
+if test "x$GDB_TRANSFORM_NAME" = x; then
+ GDB_TRANSFORM_NAME=gdb
+fi
+
+GCORE_TRANSFORM_NAME=`echo gcore | sed -e "$transform"`
+if test "x$GCORE_TRANSFORM_NAME" = x; then
+ GCORE_TRANSFORM_NAME=gcore
+fi
+
+ac_config_files="$ac_config_files gcore"
+
+
ac_config_files="$ac_config_files Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile"
ac_config_commands="$ac_config_commands default"
@@ -14841,6 +14867,7 @@ do
"depdir") CONFIG_COMMANDS="$CONFIG_COMMANDS depdir" ;;
"jit-reader.h") CONFIG_FILES="$CONFIG_FILES jit-reader.h:jit-reader.in" ;;
"$ac_config_links_1") CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_1" ;;
+ "gcore") CONFIG_FILES="$CONFIG_FILES gcore" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"gdb-gdb.gdb") CONFIG_FILES="$CONFIG_FILES gdb-gdb.gdb" ;;
"doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
@@ -15462,6 +15489,7 @@ $as_echo "$as_me: executing $ac_file com
case $ac_file$ac_mode in
"depdir":C) $SHELL $ac_aux_dir/mkinstalldirs $DEPDIR ;;
+ "gcore":F) chmod +x gcore ;;
"default":C)
case x$CONFIG_HEADERS in
xconfig.h:config.in)
Index: gdb-7.6/gdb/configure.ac
===================================================================
--- gdb-7.6.orig/gdb/configure.ac 2013-03-12 23:25:32.000000000 +0100
+++ gdb-7.6/gdb/configure.ac 2013-04-26 15:33:01.180049239 +0200
@@ -203,6 +203,7 @@ fi
TARGET_OBS=
all_targets=
+HAVE_NATIVE_GCORE_TARGET=
for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
do
@@ -236,6 +237,12 @@ do
if test x${want64} = xfalse; then
. ${srcdir}/../bfd/config.bfd
fi
+
+ # Check whether this target is native and supports gcore.
+ if test $gdb_native = yes -a "$targ_alias" = "$target_alias" \
+ && $gdb_have_gcore; then
+ HAVE_NATIVE_GCORE_TARGET=1
+ fi
fi
done
@@ -264,6 +271,7 @@ if test x${all_targets} = xtrue; then
fi
AC_SUBST(TARGET_OBS)
+AC_SUBST(HAVE_NATIVE_GCORE_TARGET)
# For other settings, only the main target counts.
gdb_sim=
@@ -2349,6 +2357,20 @@ dnl At the moment, we just assume it's
AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
[Define to be a string naming the default host character set.])
+# Undo the $ec_script escaping suitable for Makefile.
+transform=`echo "$program_transform_name" | sed -e 's/[\\$][\\$]/\\$/g'`
+GDB_TRANSFORM_NAME=`echo gdb | sed -e "$transform"`
+if test "x$GDB_TRANSFORM_NAME" = x; then
+ GDB_TRANSFORM_NAME=gdb
+fi
+AC_SUBST(GDB_TRANSFORM_NAME)
+GCORE_TRANSFORM_NAME=`echo gcore | sed -e "$transform"`
+if test "x$GCORE_TRANSFORM_NAME" = x; then
+ GCORE_TRANSFORM_NAME=gcore
+fi
+AC_SUBST(GCORE_TRANSFORM_NAME)
+AC_CONFIG_FILES([gcore], [chmod +x gcore])
+
AC_OUTPUT(Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile,
[
case x$CONFIG_HEADERS in
Index: gdb-7.6/gdb/configure.tgt
===================================================================
--- gdb-7.6.orig/gdb/configure.tgt 2013-03-05 14:37:10.000000000 +0100
+++ gdb-7.6/gdb/configure.tgt 2013-04-26 15:33:01.180049239 +0200
@@ -6,6 +6,7 @@
# gdb_sim simulator library for target
# gdb_osabi default OS ABI to use with target
# build_gdbserver set to "yes" if gdbserver supports target
+# gdb_have_gcore set to "true"/"false" if this target can run gcore
# NOTE: Every file added to a gdb_target_obs variable for any target here
# must also be added to either ALL_TARGET_OBS or ALL_64_TARGET_OBS
@@ -703,3 +704,14 @@ m68*-*-openbsd* | m88*-*-openbsd* | vax-
*-*-symbianelf*)
gdb_osabi=GDB_OSABI_SYMBIAN ;;
esac
+
+# Check whether this target supports gcore.
+# Such target has to call set_gdbarch_find_memory_regions.
+case " ${gdb_target_obs} " in
+ *" linux-tdep.o "*)
+ gdb_have_gcore=true
+ ;;
+ *)
+ gdb_have_gcore=false
+ ;;
+esac
Index: gdb-7.6/gdb/config/alpha/alpha-osf3.mh
===================================================================
--- gdb-7.6.orig/gdb/config/alpha/alpha-osf3.mh 2012-01-10 17:30:44.000000000 +0100
+++ gdb-7.6/gdb/config/alpha/alpha-osf3.mh 2013-04-26 15:33:01.181049238 +0200
@@ -3,4 +3,5 @@ NAT_FILE= nm-osf3.h
NATDEPFILES= alpha-nat.o fork-child.o \
solib-osf.o procfs.o proc-api.o proc-events.o proc-flags.o \
proc-why.o dec-thread.o
+HAVE_NATIVE_GCORE_HOST = 1
NAT_CLIBS= -lpthreaddebug
Index: gdb-7.6/gdb/config/i386/fbsd.mh
===================================================================
--- gdb-7.6.orig/gdb/config/i386/fbsd.mh 2009-10-26 19:28:13.000000000 +0100
+++ gdb-7.6/gdb/config/i386/fbsd.mh 2013-04-26 15:33:01.181049238 +0200
@@ -3,5 +3,6 @@ NATDEPFILES= fork-child.o inf-ptrace.o \
fbsd-nat.o i386-nat.o i386bsd-nat.o i386fbsd-nat.o \
bsd-kvm.o
NAT_FILE= nm-fbsd.h
+HAVE_NATIVE_GCORE_HOST = 1
LOADLIBES= -lkvm
Index: gdb-7.6/gdb/config/i386/fbsd64.mh
===================================================================
--- gdb-7.6.orig/gdb/config/i386/fbsd64.mh 2012-02-09 17:06:44.000000000 +0100
+++ gdb-7.6/gdb/config/i386/fbsd64.mh 2013-04-26 15:33:01.181049238 +0200
@@ -2,5 +2,6 @@
NATDEPFILES= fork-child.o inf-ptrace.o \
fbsd-nat.o amd64-nat.o amd64bsd-nat.o amd64fbsd-nat.o \
bsd-kvm.o i386-nat.o
+HAVE_NATIVE_GCORE_HOST = 1
LOADLIBES= -lkvm
Index: gdb-7.6/gdb/config/i386/i386gnu.mh
===================================================================
--- gdb-7.6.orig/gdb/config/i386/i386gnu.mh 2012-01-10 17:30:44.000000000 +0100
+++ gdb-7.6/gdb/config/i386/i386gnu.mh 2013-04-26 15:33:01.181049238 +0200
@@ -2,6 +2,7 @@
NATDEPFILES= i386gnu-nat.o gnu-nat.o core-regset.o fork-child.o \
notify_S.o process_reply_S.o msg_reply_S.o \
msg_U.o exc_request_U.o exc_request_S.o
+HAVE_NATIVE_GCORE_HOST = 1
NAT_FILE= nm-i386gnu.h
MH_CFLAGS = -D_GNU_SOURCE
Index: gdb-7.6/gdb/config/i386/i386sol2.mh
===================================================================
--- gdb-7.6.orig/gdb/config/i386/i386sol2.mh 2010-04-26 15:53:56.000000000 +0200
+++ gdb-7.6/gdb/config/i386/i386sol2.mh 2013-04-26 15:33:01.181049238 +0200
@@ -1,3 +1,4 @@
# Host: Solaris x86
NATDEPFILES= fork-child.o i386v4-nat.o i386-sol2-nat.o \
procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o
+HAVE_NATIVE_GCORE_HOST = 1
Index: gdb-7.6/gdb/config/i386/sol2-64.mh
===================================================================
--- gdb-7.6.orig/gdb/config/i386/sol2-64.mh 2010-04-26 15:53:57.000000000 +0200
+++ gdb-7.6/gdb/config/i386/sol2-64.mh 2013-04-26 15:33:01.182049237 +0200
@@ -1,3 +1,4 @@
# Host: Solaris x86_64
NATDEPFILES= fork-child.o amd64-nat.o i386v4-nat.o i386-sol2-nat.o \
procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o
+HAVE_NATIVE_GCORE_HOST = 1
Index: gdb-7.6/gdb/config/mips/irix5.mh
===================================================================
--- gdb-7.6.orig/gdb/config/mips/irix5.mh 2012-01-10 17:30:45.000000000 +0100
+++ gdb-7.6/gdb/config/mips/irix5.mh 2013-04-26 15:33:01.182049237 +0200
@@ -1,3 +1,4 @@
# Host: SGI Iris running irix 5.x
NATDEPFILES= fork-child.o irix5-nat.o procfs.o \
proc-api.o proc-events.o proc-flags.o proc-why.o
+HAVE_NATIVE_GCORE_HOST = 1
Index: gdb-7.6/gdb/config/mips/irix6.mh
===================================================================
--- gdb-7.6.orig/gdb/config/mips/irix6.mh 2012-01-10 17:30:45.000000000 +0100
+++ gdb-7.6/gdb/config/mips/irix6.mh 2013-04-26 15:33:01.182049237 +0200
@@ -1,3 +1,4 @@
# Host: SGI Iris running irix 6.x
NATDEPFILES= fork-child.o irix5-nat.o procfs.o \
proc-api.o proc-events.o proc-flags.o proc-why.o
+HAVE_NATIVE_GCORE_HOST = 1
Index: gdb-7.6/gdb/config/powerpc/fbsd.mh
===================================================================
--- gdb-7.6.orig/gdb/config/powerpc/fbsd.mh 2013-02-04 21:48:53.000000000 +0100
+++ gdb-7.6/gdb/config/powerpc/fbsd.mh 2013-04-26 15:33:01.182049237 +0200
@@ -18,6 +18,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. */
NATDEPFILES= fbsd-nat.o fork-child.o inf-ptrace.o ppcfbsd-nat.o bsd-kvm.o
+HAVE_NATIVE_GCORE_HOST = 1
LOADLIBES= -lkvm
Index: gdb-7.6/gdb/config/sparc/fbsd.mh
===================================================================
--- gdb-7.6.orig/gdb/config/sparc/fbsd.mh 2009-10-26 19:28:15.000000000 +0100
+++ gdb-7.6/gdb/config/sparc/fbsd.mh 2013-04-26 15:33:01.182049237 +0200
@@ -2,5 +2,6 @@
NATDEPFILES= fork-child.o inf-ptrace.o \
fbsd-nat.o sparc-nat.o sparc64-nat.o sparc64fbsd-nat.o \
bsd-kvm.o
+HAVE_NATIVE_GCORE_HOST = 1
LOADLIBES= -lkvm
Index: gdb-7.6/gdb/config/sparc/sol2.mh
===================================================================
--- gdb-7.6.orig/gdb/config/sparc/sol2.mh 2012-01-10 17:30:49.000000000 +0100
+++ gdb-7.6/gdb/config/sparc/sol2.mh 2013-04-26 15:33:01.182049237 +0200
@@ -3,3 +3,4 @@ NAT_FILE= nm-sol2.h
NATDEPFILES= sparc-sol2-nat.o \
core-regset.o fork-child.o \
procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o
+HAVE_NATIVE_GCORE_HOST = 1
Index: gdb-7.6/gdb/doc/Makefile.in
===================================================================
--- gdb-7.6.orig/gdb/doc/Makefile.in 2013-04-26 15:32:58.000000000 +0200
+++ gdb-7.6/gdb/doc/Makefile.in 2013-04-26 15:33:01.183049235 +0200
@@ -177,11 +177,15 @@ POD2MAN5 = pod2man --center="GNU Develop
--release="gdb-`sed q $(srcdir)/../version.in`" --section=5
# List of man pages generated from gdb.texi
-MAN1S = gdb.1 gdbserver.1
+MAN1S = gdb.1 gdbserver.1 gcore.1
MAN5S = gdbinit.5
MANS = $(MAN1S) $(MAN5S)
-#### Host, target, and site specific Makefile fragments come in here.
+# Host-dependent makefile fragment comes in here.
+@host_makefile_frag@
+# End of host-dependent makefile fragment
+HAVE_NATIVE_GCORE_TARGET = @HAVE_NATIVE_GCORE_TARGET@
+
###
all:
@@ -269,6 +273,10 @@ install-man: install-man1 install-man5
install-man1: $(MAN1S)
test -z "$(man1dir)" || $(mkinstalldirs) "$(DESTDIR)$(man1dir)"
@list='$(MAN1S)'; for p in $$list; do \
+ if test "x$(HAVE_NATIVE_GCORE_TARGET)$(HAVE_NATIVE_GCORE_HOST)" = x \
+ -a "$$p" = gcore.1; then \
+ continue; \
+ fi; \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=`echo $$p | sed -e 's|^.*/||'`; \
echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(man1dir)/$$f'"; \
@@ -288,7 +296,13 @@ uninstall-man: uninstall-man1 uninstall-
uninstall-man1:
@test -n "$(man1dir)" || exit 0; \
- files=`{ l2='$(MAN1S)'; for i in $$l2; do echo "$$i"; done | \
+ files=`{ l2='$(MAN1S)'; for i in $$l2; do \
+ if test "x$(HAVE_NATIVE_GCORE_TARGET)$(HAVE_NATIVE_GCORE_HOST)" = x \
+ -a "$$i" = gcore.1; then \
+ continue; \
+ fi; \
+ echo "$$i"; \
+ done | \
sed -n '/\.1[a-z]*$$/p'; \
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
@@ -605,6 +619,13 @@ gdbserver.1: $(GDB_DOC_FILES)
mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
rm -f gdbserver.pod
+gcore.1: $(GDB_DOC_FILES)
+ touch $@
+ -$(TEXI2POD) $(MANCONF) -Dgcore < $(srcdir)/gdb.texinfo > gcore.pod
+ -($(POD2MAN1) gcore.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+ mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+ rm -f gcore.pod
+
gdbinit.5: $(GDB_DOC_FILES)
touch $@
-$(TEXI2POD) $(MANCONF) -Dgdbinit < $(srcdir)/gdb.texinfo > gdbinit.pod
Index: gdb-7.6/gdb/doc/gdb.texinfo
===================================================================
--- gdb-7.6.orig/gdb/doc/gdb.texinfo 2013-04-26 15:32:58.000000000 +0200
+++ gdb-7.6/gdb/doc/gdb.texinfo 2013-04-26 15:33:01.191049229 +0200
@@ -41709,6 +41709,7 @@ switch (die->tag)
@menu
* gdb man:: 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
* gdbinit man:: gdbinit scripts
@end menu
@@ -42230,6 +42231,53 @@ info gdb
should give you access to the complete manual.
@cite{Using GDB: A Guide to the GNU Source-Level Debugger},
+Richard M. Stallman and Roland H. Pesch, July 1991.
+@end ifset
+@c man end
+
+@node gcore man
+@heading gcore
+
+@c man title gcore Generate a core file of a running program
+
+@format
+@c man begin SYNOPSIS gcore
+gcore [-o @var{filename}] @var{pid}
+@c man end
+@end format
+
+@c man begin DESCRIPTION gcore
+Generate a core dump of a running program with process ID @var{pid}.
+Produced file is equivalent to a kernel produced core file as if the process
+crashed (and if @kbd{ulimit -c} were used to set up an appropriate core dump
+limit). Unlike after a crash, after @command{gcore} the program remains
+running without any change.
+@c man end
+
+@c man begin OPTIONS gcore
+@table @env
+@item -o @var{filename}
+The optional argument
+@var{filename} specifies the file name where to put the core dump.
+If not specified, the file name defaults to @file{core.@var{pid}},
+where @var{pid} is the running program process ID.
+@end table
+@c man end
+
+@c man begin SEEALSO gcore
+@ifset man
+The full documentation for @value{GDBN} is maintained as a Texinfo manual.
+If the @code{info} and @code{gdb} programs and @value{GDBN}'s Texinfo
+documentation are properly installed at your site, the command
+
+@smallexample
+info gdb
+@end smallexample
+
+@noindent
+should give you access to the complete manual.
+
+@cite{Using GDB: A Guide to the GNU Source-Level Debugger},
Richard M. Stallman and Roland H. Pesch, July 1991.
@end ifset
@c man end

View File

@ -1,33 +0,0 @@
http://sourceware.org/ml/gdb-cvs/2013-04/msg00110.html
### src/gdb/ChangeLog 2013/04/11 14:13:42 1.15398
### src/gdb/ChangeLog 2013/04/11 16:53:01 1.15399
## -22,6 +22,9 @@
* gcore.in: ... here. Remove gcore.sh comment. Use GDB_TRANSFORM_NAME
and GCORE_TRANSFORM_NAME substitutions.
+ Fix parsing tabs in ${gdb_target_obs}.
+ * configure.tgt (gdb_have_gcore): Replace case with for and if.
+
2013-04-11 Jan Kratochvil <jan.kratochvil@redhat.com>
* remote.c (unpush_and_perror): Add output message final dot.
--- src/gdb/configure.tgt 2013/04/11 14:13:43 1.273
+++ src/gdb/configure.tgt 2013/04/11 16:53:01 1.274
@@ -707,11 +707,9 @@
# Check whether this target supports gcore.
# Such target has to call set_gdbarch_find_memory_regions.
-case " ${gdb_target_obs} " in
- *" linux-tdep.o "*)
+gdb_have_gcore=false
+for t in x ${gdb_target_obs}; do
+ if test "$t" = linux-tdep.o; then
gdb_have_gcore=true
- ;;
- *)
- gdb_have_gcore=false
- ;;
-esac
+ fi
+done

File diff suppressed because it is too large Load Diff

View File

@ -1,56 +0,0 @@
http://sourceware.org/ml/gdb-patches/2013-05/msg00042.html
Subject: [patch] Fix gcore for vDSO (on ppc64)
Hi,
on ppc64 GNU/Linux one gets in live process or kernel-generated core file:
#0 0x00003fff9e946b3c in __pause_nocancel () from /lib64/libc.so.6
#1 0x000000001000080c in handle_alrm (signo=14) at small.c:16
#2 <signal handler called>
#3 0x00003fff9e946b3c in __pause_nocancel () from /lib64/libc.so.6
#4 0x0000000010000914 in main (argc=2, argv=0x3fffcd00dec8) at small.c:32
while with gcore generated core file one gets:
#0 0x00003fff9e946b3c in __pause_nocancel () from /lib64/libc.so.6
#1 0x000000001000080c in handle_alrm (signo=14) at small.c:16
#2 0x00003fff9ea70448 in ?? ()
#3 0x0000000010000914 in main (argc=2, argv=0x3fffcd00dec8) at small.c:32
This is because on ppc64 GNU/Linux the signal handler frame is in vDSO (and
not in libc as on x86_64 GNU/Linux). And if one has kernel-debuginfo
installed GDB gcore thinks it can omit the vDSO page from core file.
As vDSO cannot be reliably found from link_map it should be rather fully
present in the core file. Which also gcore_create_callback tries to do but it
gets mistaken by the separate debug info.
It seems pretty obvious patch to me.
Thanks,
Jan
gdb/
2013-05-03 Jan Kratochvil <jan.kratochvil@redhat.com>
* gcore.c (gcore_create_callback): Ignore sections with
separate_debug_objfile_backlink != NULL.
--- gdb-7.6-orig/gdb/gcore.c 2013-01-01 07:32:42.000000000 +0100
+++ gdb-7.6/gdb/gcore.c 2013-05-03 03:31:34.795312996 +0200
@@ -428,8 +428,9 @@ gcore_create_callback (CORE_ADDR vaddr,
This BFD was synthesized from reading target memory,
we don't want to omit that. */
- if (((vaddr >= start && vaddr + size <= end)
- || (start >= vaddr && end <= vaddr + size))
+ if (objfile->separate_debug_objfile_backlink == NULL
+ && ((vaddr >= start && vaddr + size <= end)
+ || (start >= vaddr && end <= vaddr + size))
&& !(bfd_get_file_flags (abfd) & BFD_IN_MEMORY))
{
flags &= ~(SEC_LOAD | SEC_HAS_CONTENTS);

View File

@ -27,22 +27,23 @@
Summary: A GNU source-level debugger for C, C++, Fortran, Go and other languages Summary: A GNU source-level debugger for C, C++, Fortran, Go and other languages
Name: %{?scl_prefix}gdb Name: %{?scl_prefix}gdb
#global snap 20130423 # 6e5c95e6cf1e3c37bd3a822ca9e6721caab97a85
%global snap 20130731
# Freeze it when GDB gets branched # Freeze it when GDB gets branched
%global snapsrc 20130312 %global snapsrc 20130731
# See timestamp of source gnulib installed into gdb/gnulib/ . # See timestamp of source gnulib installed into gdb/gnulib/ .
%global snapgnulib 20121213 %global snapgnulib 20121213
Version: 7.6 Version: 7.6.50.%{snap}
# The release always contains a leading reserved number, start it at 1. # The release always contains a leading reserved number, start it at 1.
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing. # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
Release: 36%{?dist} Release: 1%{?dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain
Group: Development/Debuggers Group: Development/Debuggers
# Do not provide URL for snapshots as the file lasts there only for 2 days. # Do not provide URL for snapshots as the file lasts there only for 2 days.
# ftp://sourceware.org/pub/gdb/releases/gdb-%{version}.tar.bz2 # ftp://sourceware.org/pub/gdb/releases/gdb-%{version}.tar.bz2
Source: ftp://sourceware.org/pub/gdb/releases/gdb-%{version}.tar.bz2 Source: gdb-%{version}-cvs.tar.bz2
Buildroot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) Buildroot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
URL: http://gnu.org/software/gdb/ URL: http://gnu.org/software/gdb/
@ -51,7 +52,7 @@ Obsoletes: devtoolset-1.0-%{pkg_name}
%endif %endif
# For our convenience # For our convenience
%global gdb_src %{pkg_name}-%{version} %global gdb_src %{pkg_name}-%{version}-cvs
%global gdb_build build-%{_target_platform} %global gdb_build build-%{_target_platform}
# Make sure we get rid of the old package gdb64, now that we have unified # Make sure we get rid of the old package gdb64, now that we have unified
@ -262,12 +263,7 @@ Patch231: gdb-6.3-bz202689-exec-from-pthread-test.patch
# Backported fixups post the source tarball. # Backported fixups post the source tarball.
#Xdrop: Just backports. #Xdrop: Just backports.
Patch232: gdb-upstream.patch #Patch232: gdb-upstream.patch
Patch828: gdb-upstream-man-gcore-1of2.patch
Patch829: gdb-upstream-man-gcore-2of2.patch
# Backported Python frame filters (Phil Muldoon).
Patch836: gdb-upstream-framefilters-1of2.patch
Patch837: gdb-upstream-framefilters-2of2.patch
# Testcase for PPC Power6/DFP instructions disassembly (BZ 230000). # Testcase for PPC Power6/DFP instructions disassembly (BZ 230000).
#=fedoratest+ppc #=fedoratest+ppc
@ -504,20 +500,6 @@ Patch548: gdb-test-expr-cumulative-archer.patch
#=push+work #=push+work
Patch579: gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch Patch579: gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
# Fix dlopen of libpthread.so, patched glibc required (Gary Benson, BZ 669432).
# Fix crash regression from the dlopen of libpthread.so fix (BZ 911712).
# Fix performance regression when inferior opens many libraries (Gary Benson).
#=drop
Patch718: gdb-dlopen-stap-probe-1of9.patch
Patch719: gdb-dlopen-stap-probe-2of9.patch
Patch720: gdb-dlopen-stap-probe-3of9.patch
Patch721: gdb-dlopen-stap-probe-4of9.patch
Patch722: gdb-dlopen-stap-probe-5of9.patch
Patch723: gdb-dlopen-stap-probe-6of9.patch
Patch822: gdb-dlopen-stap-probe-7of9.patch
Patch827: gdb-dlopen-stap-probe-8of9.patch
Patch619: gdb-dlopen-stap-probe-9of9.patch
# Work around PR libc/13097 "linux-vdso.so.1" warning message. # Work around PR libc/13097 "linux-vdso.so.1" warning message.
#=push #=push
Patch627: gdb-glibc-vdso-workaround.patch Patch627: gdb-glibc-vdso-workaround.patch
@ -533,8 +515,6 @@ Patch642: gdb-readline62-ask-more-rh.patch
# Print reasons for failed attach/spawn incl. SELinux deny_ptrace (BZ 786878). # Print reasons for failed attach/spawn incl. SELinux deny_ptrace (BZ 786878).
#=push #=push
Patch653: gdb-attach-fail-reasons-5of5.patch Patch653: gdb-attach-fail-reasons-5of5.patch
#=fedora
Patch657: gdb-attach-fail-reasons-5of5configure.patch
# Workaround crashes from stale frame_info pointer (BZ 804256). # Workaround crashes from stale frame_info pointer (BZ 804256).
#=fedora #=fedora
@ -569,24 +549,6 @@ Patch818: gdb-rhbz795424-bitpos-lazyvalue.patch
#=fedoratest #=fedoratest
Patch832: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch Patch832: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
# Fix gcore for vDSO (on ppc64).
#=drop
Patch834: gdb-vdso-gcore.patch
# Fix needless expansion of non-gdbindex symtabs (Doug Evans).
#=drop
Patch835: gdb-psymtab-expand.patch
# Fix C++ lookups performance regression (Doug Evans, BZ 972677).
#=drop
Patch838: gdb-cxx-performance-1of2.patch
Patch839: gdb-cxx-performance-2of2.patch
# [ppc] Support Power8 CPU (IBM, BZ 731875).
#=drop
Patch840: gdb-power8-1of2.patch
Patch841: gdb-power8-2of2.patch
%if 0%{!?rhel:1} || 0%{?rhel} > 6 %if 0%{!?rhel:1} || 0%{?rhel} > 6
# RL_STATE_FEDORA_GDB would not be found for: # RL_STATE_FEDORA_GDB would not be found for:
# Patch642: gdb-readline62-ask-more-rh.patch # Patch642: gdb-readline62-ask-more-rh.patch
@ -792,9 +754,7 @@ find -name "*.info*"|xargs rm -f
%patch2 -p1 %patch2 -p1
%patch349 -p1 %patch349 -p1
%patch232 -p1 #patch232 -p1
%patch828 -p1
%patch829 -p1
%patch1 -p1 %patch1 -p1
%patch3 -p1 %patch3 -p1
@ -883,19 +843,9 @@ find -name "*.info*"|xargs rm -f
%patch547 -p1 %patch547 -p1
%patch548 -p1 %patch548 -p1
%patch579 -p1 %patch579 -p1
%patch718 -p1
%patch719 -p1
%patch720 -p1
%patch721 -p1
%patch722 -p1
%patch723 -p1
%patch822 -p1
%patch827 -p1
%patch619 -p1
%patch627 -p1 %patch627 -p1
%patch634 -p1 %patch634 -p1
%patch653 -p1 %patch653 -p1
%patch657 -p1
%patch661 -p1 %patch661 -p1
%patch690 -p1 %patch690 -p1
%patch698 -p1 %patch698 -p1
@ -908,19 +858,7 @@ find -name "*.info*"|xargs rm -f
%patch817 -p1 %patch817 -p1
%patch818 -p1 %patch818 -p1
%patch832 -p1 %patch832 -p1
%patch834 -p1
%patch835 -p1
%patch838 -p1
%patch839 -p1
%patch840 -p1
%patch841 -p1
%patch836 -p1
%patch837 -p1
%if 0%{?scl:1}
%patch836 -p1 -R
%patch837 -p1 -R
%endif
%patch393 -p1 %patch393 -p1
%if 0%{!?el5:1} || 0%{?scl:1} %if 0%{!?el5:1} || 0%{?scl:1}
%patch393 -p1 -R %patch393 -p1 -R
@ -1422,6 +1360,9 @@ fi
%endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch" %endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch"
%changelog %changelog
* Fri Aug 2 2013 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.6.50.20130731-1.fc20
- Rebase to FSF GDB 7.6.50.20130731 (pre-7.6 snapshot).
* Mon Jul 29 2013 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.6-36.fc20 * Mon Jul 29 2013 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.6-36.fc20
- Remove %%{gdb_docdir}, rebuild for unversioned docdirs (for BZ 986871). - Remove %%{gdb_docdir}, rebuild for unversioned docdirs (for BZ 986871).

View File

@ -1,2 +1,3 @@
4981307aa9619bbec5b73261e4e41c8d gdb-libstdc++-v3-python-r155978.tar.bz2 4981307aa9619bbec5b73261e4e41c8d gdb-libstdc++-v3-python-r155978.tar.bz2
fda57170e4d11cdde74259ca575412a8 gdb-7.6.tar.bz2 8ce4e757790139e3f07652a2b49d79ff gdb-7.6.50.20130624.tar.bz2
f16c33bdd9d0030d0c2a42d5f319f841 gdb-7.6.50.20130731-cvs.tar.bz2