Rebase to FSF GDB 7.6.50.20130731 (pre-7.6 snapshot).
This commit is contained in:
parent
2f9bb15290
commit
872aab074e
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,2 +1,3 @@
|
||||
/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
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.exp 2009-06-29 16:24:36.000000000 +0200
|
||||
@@ -0,0 +1,96 @@
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.exp 2013-08-02 22:24:04.747745133 +0200
|
||||
@@ -0,0 +1,101 @@
|
||||
+# Copyright 2007, 2009 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
@ -46,16 +46,21 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.exp
|
||||
+gdb_breakpoint "initialized"
|
||||
+gdb_breakpoint "unresolved"
|
||||
+
|
||||
+set oldtimeout $timeout
|
||||
+set timeout [expr $oldtimeout + 120]
|
||||
+
|
||||
+set test "Continue to initialized."
|
||||
+gdb_test_multiple "continue" $test {
|
||||
+ -re "Breakpoint .*, initialized .* at .*\r\n$gdb_prompt $" {
|
||||
+ pass $test
|
||||
+ }
|
||||
+ -re "Breakpoint .*, unresolved .* at .*\r\n$gdb_prompt $" {
|
||||
+ set timeout $oldtimeout
|
||||
+ unsupported $test
|
||||
+ return -1
|
||||
+ }
|
||||
+}
|
||||
+set timeout $oldtimeout
|
||||
+
|
||||
+set escapedfilename [string_to_regexp ${objdir}/${subdir}/gcore-shmid0.test]
|
||||
+
|
||||
@ -99,11 +104,11 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.exp
|
||||
+ fail $test
|
||||
+ }
|
||||
+}
|
||||
Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.c 2009-06-29 16:22:49.000000000 +0200
|
||||
@@ -0,0 +1,123 @@
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.c 2013-08-02 22:22:17.573599496 +0200
|
||||
@@ -0,0 +1,127 @@
|
||||
+/* Copyright 2007, 2009 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This file is part of GDB.
|
||||
@ -140,14 +145,18 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.c
|
||||
+
|
||||
+#define TIMEOUT_SEC 10
|
||||
+
|
||||
+static volatile int v;
|
||||
+
|
||||
+static void
|
||||
+initialized (void)
|
||||
+{
|
||||
+ v++;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+unresolved (void)
|
||||
+{
|
||||
+ v++;
|
||||
+}
|
||||
+
|
||||
+int
|
||||
@ -189,7 +198,7 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.c
|
||||
+ }
|
||||
+
|
||||
+ printf ("Problem is not reproducible on this kernel (attempt %d, "
|
||||
+ "round %d))\n", attempt, round);
|
||||
+ "round %d)\n", attempt, round);
|
||||
+ unresolved ();
|
||||
+ exit (1);
|
||||
+ }
|
||||
|
@ -11,11 +11,11 @@
|
||||
|
||||
* gdb.texinfo (File Options): Document --readnever.
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/doc/gdb.texinfo
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/doc/gdb.texinfo 2013-02-15 22:31:37.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/doc/gdb.texinfo 2013-02-15 22:34:22.381165443 +0100
|
||||
@@ -1026,6 +1026,12 @@ Read each symbol file's entire symbol ta
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/doc/gdb.texinfo 2013-08-02 16:12:54.970085942 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo 2013-08-02 16:20:21.164687886 +0200
|
||||
@@ -1030,6 +1030,12 @@ Read each symbol file's entire symbol ta
|
||||
the default, which is to read it incrementally as it is needed.
|
||||
This makes startup slower, but makes future operations faster.
|
||||
|
||||
@ -28,11 +28,11 @@ Index: gdb-7.5.50.20130215/gdb/doc/gdb.texinfo
|
||||
@end table
|
||||
|
||||
@node Mode Options
|
||||
Index: gdb-7.5.50.20130215/gdb/main.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/main.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/main.c 2013-02-15 22:31:37.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/main.c 2013-02-15 22:34:22.382165445 +0100
|
||||
@@ -447,6 +447,7 @@ captured_main (void *data)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/main.c 2013-08-02 16:12:54.974085948 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/main.c 2013-08-02 16:20:53.704731449 +0200
|
||||
@@ -459,6 +459,7 @@ captured_main (void *data)
|
||||
{"xdb", no_argument, &xdb_commands, 1},
|
||||
{"dbx", no_argument, &dbx_commands, 1},
|
||||
{"readnow", no_argument, &readnow_symbol_files, 1},
|
||||
@ -40,19 +40,19 @@ Index: gdb-7.5.50.20130215/gdb/main.c
|
||||
{"r", no_argument, &readnow_symbol_files, 1},
|
||||
{"quiet", no_argument, &quiet, 1},
|
||||
{"q", no_argument, &quiet, 1},
|
||||
@@ -1165,6 +1166,7 @@ Options:\n\n\
|
||||
fputs_unfiltered (_("\
|
||||
--quiet Do not print version number on startup.\n\
|
||||
@@ -1154,6 +1155,7 @@ Selection of debuggee and its files:\n\n
|
||||
--se=FILE Use FILE as symbol file and executable file.\n\
|
||||
--symbols=SYMFILE Read symbols from SYMFILE.\n\
|
||||
--readnow Fully read symbol files on first access.\n\
|
||||
+ --readnever Do not read symbol files.\n\
|
||||
--write Set writing into executable and core files.\n\n\
|
||||
"), stream);
|
||||
fputs_unfiltered (_("\
|
||||
--se=FILE Use FILE as symbol file and executable file.\n\
|
||||
Index: gdb-7.5.50.20130215/gdb/symfile.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/symfile.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/symfile.c 2013-02-01 20:39:03.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/symfile.c 2013-02-15 22:34:22.383165447 +0100
|
||||
@@ -81,6 +81,7 @@ static void clear_symtab_users_cleanup (
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/symfile.c 2013-08-02 16:12:54.975085949 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/symfile.c 2013-08-02 16:20:21.165687888 +0200
|
||||
@@ -82,6 +82,7 @@ static void clear_symtab_users_cleanup (
|
||||
|
||||
/* Global variables owned by this file. */
|
||||
int readnow_symbol_files; /* Read full symbols immediately. */
|
||||
@ -60,19 +60,19 @@ Index: gdb-7.5.50.20130215/gdb/symfile.c
|
||||
|
||||
/* Functions this file defines. */
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/dwarf2read.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/dwarf2read.c 2013-02-15 22:31:37.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/dwarf2read.c 2013-02-15 22:34:34.479181584 +0100
|
||||
@@ -68,6 +68,7 @@
|
||||
#include "gdb_bfd.h"
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/dwarf2read.c 2013-08-02 16:12:54.979085954 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/dwarf2read.c 2013-08-02 16:20:37.190709689 +0200
|
||||
@@ -69,6 +69,7 @@
|
||||
#include "f-lang.h"
|
||||
#include "source.h"
|
||||
#include "filestuff.h"
|
||||
+#include "top.h"
|
||||
|
||||
#include <fcntl.h>
|
||||
#include "gdb_string.h"
|
||||
@@ -1793,8 +1794,9 @@ dwarf2_has_info (struct objfile *objfile
|
||||
@@ -1834,8 +1835,9 @@ dwarf2_has_info (struct objfile *objfile
|
||||
(void *) names);
|
||||
dwarf2_per_objfile->objfile = objfile;
|
||||
}
|
||||
@ -84,11 +84,11 @@ Index: gdb-7.5.50.20130215/gdb/dwarf2read.c
|
||||
}
|
||||
|
||||
/* When loading sections, we look either for uncompressed section or for
|
||||
Index: gdb-7.5.50.20130215/gdb/top.h
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/top.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/top.h 2013-01-07 17:40:36.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/top.h 2013-02-15 22:34:22.389165459 +0100
|
||||
@@ -58,6 +58,7 @@ extern void set_prompt (const char *s);
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/top.h 2013-08-02 16:12:54.980085956 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/top.h 2013-08-02 16:20:21.169687893 +0200
|
||||
@@ -59,6 +59,7 @@ extern void set_prompt (const char *s);
|
||||
|
||||
/* From random places. */
|
||||
extern int readnow_symbol_files;
|
||||
|
@ -6,96 +6,30 @@
|
||||
* gdb.gdb/xfullpath.exp: Ditto.
|
||||
* gdb.gdb/observer.exp: Ditto.
|
||||
|
||||
Index: gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/complaints.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/selftest-support.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/testsuite/gdb.gdb/complaints.exp 2009-01-03 06:58:04.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/complaints.exp 2009-02-26 22:10:48.000000000 +0100
|
||||
@@ -302,13 +302,13 @@ proc find_gdb { arg } {
|
||||
set GDB_FULLPATH [find_gdb $GDB]
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/lib/selftest-support.exp 2013-08-02 16:11:29.195971922 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/selftest-support.exp 2013-08-02 16:12:20.404040378 +0200
|
||||
@@ -130,18 +130,18 @@ proc do_self_tests {function body} {
|
||||
set GDB_FULLPATH [find_gdb $GDB]
|
||||
|
||||
# Remove any old copy lying around.
|
||||
-remote_file host delete x$tool
|
||||
+#remote_file host delete x$tool
|
||||
# Remove any old copy lying around.
|
||||
- remote_file host delete x$tool
|
||||
+ #remote_file host delete x$tool
|
||||
|
||||
gdb_start
|
||||
gdb_start
|
||||
- set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
+ #set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
|
||||
-set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
+#set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
- set result [selftest_setup $file $function]
|
||||
+ set result [selftest_setup $GDB_FULLPATH $function]
|
||||
if {$result == 0} then {
|
||||
set result [uplevel $body]
|
||||
}
|
||||
|
||||
-set setup_result [setup_test $file ]
|
||||
+set setup_result [setup_test $GDB_FULLPATH ]
|
||||
if {$setup_result <0} then {
|
||||
return -1
|
||||
}
|
||||
@@ -319,4 +319,4 @@ test_short_complaints
|
||||
test_empty_complaints
|
||||
gdb_exit
|
||||
- catch "remote_file host delete $file"
|
||||
+ #catch "remote_file host delete $file"
|
||||
|
||||
gdb_exit;
|
||||
-catch "remote_file host delete $file";
|
||||
+#catch "remote_file host delete $file";
|
||||
Index: gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/observer.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/testsuite/gdb.gdb/observer.exp 2009-02-17 20:52:27.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/observer.exp 2009-02-26 22:11:40.000000000 +0100
|
||||
@@ -258,13 +258,13 @@ proc find_gdb { arg } {
|
||||
set GDB_FULLPATH [find_gdb $GDB]
|
||||
|
||||
# Remove any old copy lying around.
|
||||
-remote_file host delete x$tool
|
||||
+#remote_file host delete x$tool
|
||||
|
||||
gdb_start
|
||||
-set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
-set result [test_observer $file];
|
||||
+#set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
+set result [test_observer $GDB_FULLPATH];
|
||||
gdb_exit;
|
||||
-catch "remote_file host delete $file";
|
||||
+#catch "remote_file host delete $file";
|
||||
|
||||
if {$result <0} then {
|
||||
warning "Couldn't test self"
|
||||
Index: gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/selftest.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/testsuite/gdb.gdb/selftest.exp 2009-02-26 22:09:59.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/selftest.exp 2009-02-26 22:10:48.000000000 +0100
|
||||
@@ -551,13 +551,13 @@ proc find_gdb { arg } {
|
||||
set GDB_FULLPATH [find_gdb $GDB]
|
||||
|
||||
# Remove any old copy lying around.
|
||||
-remote_file host delete x$tool
|
||||
+#remote_file host delete x$tool
|
||||
|
||||
gdb_start
|
||||
-set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
-set result [test_with_self $file];
|
||||
+#set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
+set result [test_with_self $GDB_FULLPATH];
|
||||
gdb_exit;
|
||||
-catch "remote_file host delete $file";
|
||||
+#catch "remote_file host delete $file";
|
||||
|
||||
if {$result <0} then {
|
||||
warning "Couldn't test self"
|
||||
Index: gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/xfullpath.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/testsuite/gdb.gdb/xfullpath.exp 2009-01-03 06:58:04.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/xfullpath.exp 2009-02-26 22:10:48.000000000 +0100
|
||||
@@ -179,13 +179,13 @@ proc find_gdb { arg } {
|
||||
set GDB_FULLPATH [find_gdb $GDB]
|
||||
|
||||
# Remove any old copy lying around.
|
||||
-remote_file host delete x$tool
|
||||
+#remote_file host delete x$tool
|
||||
|
||||
gdb_start
|
||||
-set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
-set result [test_with_self $file];
|
||||
+#set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
+set result [test_with_self $GDB_FULLPATH];
|
||||
gdb_exit;
|
||||
-catch "remote_file host delete $file";
|
||||
+#catch "remote_file host delete $file";
|
||||
|
||||
if {$result <0} then {
|
||||
warning "Couldn't test self"
|
||||
if {$result < 0} then {
|
||||
warning "Couldn't test self"
|
||||
|
@ -32,21 +32,23 @@ glibc-debuginfo-2.7-2.x86_64: /usr/lib/debug/lib64/libc.so.6.debug:
|
||||
<81a2> DW_AT_name : (indirect string, offset: 0x280e): __errno_location
|
||||
<81a8> DW_AT_MIPS_linkage_name: (indirect string, offset: 0x2808): *__GI___errno_location
|
||||
|
||||
--- a/gdb/printcmd.c
|
||||
+++ b/gdb/printcmd.c
|
||||
@@ -967,6 +967,8 @@ print_command_1 (char *exp, int inspect, int voidprint)
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/printcmd.c
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/printcmd.c 2013-08-02 16:21:13.665758324 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/printcmd.c 2013-08-02 16:22:24.367853322 +0200
|
||||
@@ -982,6 +982,8 @@ print_command_1 (const char *exp, int vo
|
||||
|
||||
if (exp && *exp)
|
||||
{
|
||||
+ if (strcmp (exp, "errno") == 0)
|
||||
+ exp = "*((int *(*) (void)) __errno_location) ()";
|
||||
expr = parse_expression (exp);
|
||||
old_chain = make_cleanup (free_current_contents, &expr);
|
||||
cleanup = 1;
|
||||
Index: gdb-7.2/gdb/testsuite/gdb.dwarf2/dw2-errno.c
|
||||
make_cleanup (free_current_contents, &expr);
|
||||
val = evaluate_expression (expr);
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.dwarf2/dw2-errno.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.2/gdb/testsuite/gdb.dwarf2/dw2-errno.c 2011-03-29 10:55:35.000000000 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.dwarf2/dw2-errno.c 2013-08-02 16:21:13.665758324 +0200
|
||||
@@ -0,0 +1,28 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
@ -76,10 +78,10 @@ Index: gdb-7.2/gdb/testsuite/gdb.dwarf2/dw2-errno.c
|
||||
+
|
||||
+ return 0; /* breakpoint */
|
||||
+}
|
||||
Index: gdb-7.2/gdb/testsuite/gdb.dwarf2/dw2-errno.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.dwarf2/dw2-errno.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.2/gdb/testsuite/gdb.dwarf2/dw2-errno.exp 2011-03-29 10:55:35.000000000 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.dwarf2/dw2-errno.exp 2013-08-02 16:21:13.665758324 +0200
|
||||
@@ -0,0 +1,60 @@
|
||||
+# Copyright 2007 Free Software Foundation, Inc.
|
||||
+
|
||||
|
@ -1,11 +1,11 @@
|
||||
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=218379
|
||||
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/symtab.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/symtab.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/symtab.c 2013-01-18 23:53:22.009797788 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/symtab.c 2013-01-18 23:53:51.044846777 +0100
|
||||
@@ -2356,6 +2356,13 @@ find_pc_sect_line (CORE_ADDR pc, struct
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/symtab.c 2013-08-02 17:06:19.854663801 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/symtab.c 2013-08-02 17:07:04.317721471 +0200
|
||||
@@ -2327,6 +2327,13 @@ find_pc_sect_line (CORE_ADDR pc, struct
|
||||
SYMBOL_LINKAGE_NAME (msymbol)); */
|
||||
;
|
||||
/* fall through */
|
||||
@ -14,7 +14,7 @@ Index: gdb-7.5.50.20130118/gdb/symtab.c
|
||||
+ Avoid `find_pc_sect_line'<->`find_pc_line' infinite loop.
|
||||
+ Red Hat Bug 218379. */
|
||||
+ else if (SYMBOL_VALUE (mfunsym) == pc)
|
||||
+ warning ("In stub for %s (0x%s); interlocked, please submit the binary to http://bugzilla.redhat.com", SYMBOL_LINKAGE_NAME (msymbol), paddress (target_gdbarch (), pc));
|
||||
+ warning ("In stub for %s (0x%s); interlocked, please submit the binary to http://bugzilla.redhat.com", SYMBOL_LINKAGE_NAME (msymbol.minsym), paddress (target_gdbarch (), pc));
|
||||
+ /* fall through */
|
||||
else
|
||||
return find_pc_line (SYMBOL_VALUE_ADDRESS (mfunsym), 0);
|
||||
|
@ -58,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
|
||||
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.5.91.20130323/gdb/exceptions.h 2013-03-23 19:49:05.738459185 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/exceptions.h 2013-08-02 16:29:44.770440262 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/exceptions.h 2013-08-02 16:30:06.197468727 +0200
|
||||
@@ -90,6 +90,9 @@ enum errors {
|
||||
aborted as the inferior state is no longer valid. */
|
||||
TARGET_CLOSE_ERROR,
|
||||
@ -72,10 +72,10 @@ Index: gdb-7.5.91.20130323/gdb/exceptions.h
|
||||
/* Add more errors here. */
|
||||
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.5.91.20130323/gdb/exec.c 2013-03-23 19:48:53.284575912 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/exec.c 2013-08-02 16:29:44.771440264 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/exec.c 2013-08-02 16:31:30.100618657 +0200
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "gdbthread.h"
|
||||
#include "progspace.h"
|
||||
@ -84,7 +84,7 @@ Index: gdb-7.5.91.20130323/gdb/exec.c
|
||||
|
||||
#include <fcntl.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))
|
||||
{
|
||||
@ -114,12 +114,12 @@ Index: gdb-7.5.91.20130323/gdb/exec.c
|
||||
+ gdb_bfd_errmsg (bfd_get_error (), matching));
|
||||
}
|
||||
|
||||
/* FIXME - This should only be run for RS6000, but the ifdef is a poor
|
||||
Index: gdb-7.5.91.20130323/gdb/main.c
|
||||
if (build_section_table (exec_bfd, §ions, §ions_end))
|
||||
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.5.91.20130323/gdb/main.c 2013-03-23 19:48:53.285575901 +0100
|
||||
@@ -296,6 +296,36 @@ typedef struct cmdarg {
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/main.c 2013-08-02 16:29:44.772440265 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/main.c 2013-08-02 16:30:06.199468730 +0200
|
||||
@@ -300,6 +300,36 @@ typedef struct cmdarg {
|
||||
/* Define type VEC (cmdarg_s). */
|
||||
DEF_VEC_O (cmdarg_s);
|
||||
|
||||
@ -156,7 +156,7 @@ Index: gdb-7.5.91.20130323/gdb/main.c
|
||||
static int
|
||||
captured_main (void *data)
|
||||
{
|
||||
@@ -796,6 +826,8 @@ captured_main (void *data)
|
||||
@@ -810,6 +840,8 @@ captured_main (void *data)
|
||||
{
|
||||
symarg = argv[optind];
|
||||
execarg = argv[optind];
|
||||
@ -165,7 +165,7 @@ Index: gdb-7.5.91.20130323/gdb/main.c
|
||||
optind++;
|
||||
}
|
||||
|
||||
@@ -951,11 +983,25 @@ captured_main (void *data)
|
||||
@@ -975,11 +1007,25 @@ captured_main (void *data)
|
||||
&& symarg != NULL
|
||||
&& strcmp (execarg, symarg) == 0)
|
||||
{
|
||||
|
@ -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/gdb/event-top.c 2013-07-17 19:51:02.679357656 +0200
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "continuations.h"
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/event-top.c 2013-08-02 16:25:24.968094398 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/event-top.c 2013-08-02 16:25:38.638112874 +0200
|
||||
@@ -37,6 +37,7 @@
|
||||
#include "gdbcmd.h" /* for dont_repeat() */
|
||||
#include "annotate.h"
|
||||
#include "maint.h"
|
||||
+#include "symfile.h"
|
||||
|
||||
/* readline include files. */
|
||||
#include "readline/readline.h"
|
||||
@@ -170,6 +171,8 @@ rl_callback_read_char_wrapper (gdb_clien
|
||||
@@ -171,6 +172,8 @@ rl_callback_read_char_wrapper (gdb_clien
|
||||
void
|
||||
cli_command_loop (void)
|
||||
{
|
||||
@ -19,7 +19,7 @@ Index: gdb-7.6/gdb/event-top.c
|
||||
display_gdb_prompt (0);
|
||||
|
||||
/* Now it's time to start the event loop. */
|
||||
@@ -237,6 +240,8 @@ display_gdb_prompt (char *new_prompt)
|
||||
@@ -238,6 +241,8 @@ display_gdb_prompt (char *new_prompt)
|
||||
/* Reset the nesting depth used when trace-commands is set. */
|
||||
reset_command_nest_depth ();
|
||||
|
||||
@ -28,10 +28,10 @@ Index: gdb-7.6/gdb/event-top.c
|
||||
/* Each interpreter has its own rules on displaying the command
|
||||
prompt. */
|
||||
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/gdb/elfread.c 2013-07-17 19:51:50.738390068 +0200
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/elfread.c 2013-08-02 16:25:24.970094401 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/elfread.c 2013-08-02 16:25:27.336097557 +0200
|
||||
@@ -49,6 +49,7 @@
|
||||
#include "gdbcore.h"
|
||||
#include "gdbcmd.h"
|
||||
@ -40,7 +40,7 @@ Index: gdb-7.6/gdb/elfread.c
|
||||
#include <sys/stat.h>
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@ -402,7 +402,7 @@ Index: gdb-7.6/gdb/elfread.c
|
||||
avoidance. */
|
||||
|
||||
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. */
|
||||
missing_filepair_hash = NULL;
|
||||
}
|
||||
@ -420,7 +420,7 @@ Index: gdb-7.6/gdb/elfread.c
|
||||
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;
|
||||
|
||||
@ -462,11 +462,11 @@ Index: gdb-7.6/gdb/elfread.c
|
||||
}
|
||||
|
||||
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/gdb/symfile.h 2013-07-17 19:51:02.687357661 +0200
|
||||
@@ -598,6 +598,8 @@ extern struct elf_build_id *build_id_add
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/symfile.h 2013-08-02 16:25:24.971094402 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/symfile.h 2013-08-02 16:25:27.336097557 +0200
|
||||
@@ -602,6 +602,8 @@ extern struct elf_build_id *build_id_add
|
||||
extern char *build_id_to_filename (const struct elf_build_id *build_id,
|
||||
char **link_return, int add_debug_suffix);
|
||||
extern void debug_print_missing (const char *binary, const char *debug);
|
||||
@ -475,10 +475,10 @@ Index: gdb-7.6/gdb/symfile.h
|
||||
|
||||
/* 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/gdb/testsuite/lib/gdb.exp 2013-07-17 19:51:02.688357662 +0200
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/lib/gdb.exp 2013-08-02 16:25:24.972094404 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/gdb.exp 2013-08-02 16:25:27.337097559 +0200
|
||||
@@ -1482,7 +1482,7 @@ proc default_gdb_start { } {
|
||||
warning "Couldn't set the width to 0."
|
||||
}
|
||||
@ -488,10 +488,10 @@ Index: gdb-7.6/gdb/testsuite/lib/gdb.exp
|
||||
send_gdb "set build-id-verbose 0\n"
|
||||
gdb_expect 10 {
|
||||
-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/gdb/testsuite/lib/mi-support.exp 2013-07-17 19:51:02.689357663 +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.50.20130731-cvs/gdb/testsuite/lib/mi-support.exp 2013-08-02 16:25:27.338097560 +0200
|
||||
@@ -212,7 +212,7 @@ proc default_mi_gdb_start { args } {
|
||||
warning "Couldn't set the width to 0."
|
||||
}
|
||||
@ -501,10 +501,10 @@ Index: gdb-7.6/gdb/testsuite/lib/mi-support.exp
|
||||
send_gdb "190-gdb-set build-id-verbose 0\n"
|
||||
gdb_expect 10 {
|
||||
-re ".*190-gdb-set build-id-verbose 0\r\n190\\\^done\r\n$mi_gdb_prompt$" {
|
||||
Index: gdb-7.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/gdb/tui/tui-interp.c 2013-07-17 19:51:02.689357663 +0200
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/tui/tui-interp.c 2013-08-02 16:25:24.974094406 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/tui/tui-interp.c 2013-08-02 16:25:27.338097560 +0200
|
||||
@@ -30,6 +30,7 @@
|
||||
#include "tui/tui.h"
|
||||
#include "tui/tui-io.h"
|
||||
@ -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
|
||||
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/gdb/aclocal.m4 2013-07-17 19:51:02.689357663 +0200
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/aclocal.m4 2013-08-02 16:25:24.974094406 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/aclocal.m4 2013-08-02 16:25:27.339097561 +0200
|
||||
@@ -11,6 +11,164 @@
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
@ -682,10 +682,10 @@ Index: gdb-7.6/gdb/aclocal.m4
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# 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/gdb/config.in 2013-07-17 19:51:02.689357663 +0200
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/config.in 2013-08-02 16:25:24.975094407 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/config.in 2013-08-02 16:25:27.339097561 +0200
|
||||
@@ -33,6 +33,9 @@
|
||||
/* Define to BFD's default target vector. */
|
||||
#undef DEFAULT_BFD_VEC
|
||||
@ -696,7 +696,7 @@ Index: gdb-7.6/gdb/config.in
|
||||
/* Define to 1 if translation of program messages to the user's native
|
||||
language is requested. */
|
||||
#undef ENABLE_NLS
|
||||
@@ -210,6 +213,9 @@
|
||||
@@ -219,6 +222,9 @@
|
||||
/* Define if Python 2.7 is being used. */
|
||||
#undef HAVE_LIBPYTHON2_7
|
||||
|
||||
@ -706,11 +706,11 @@ Index: gdb-7.6/gdb/config.in
|
||||
/* Define to 1 if you have the <libunwind-ia64.h> header file. */
|
||||
#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/gdb/configure 2013-07-17 19:51:02.691357664 +0200
|
||||
@@ -686,6 +686,11 @@ PKGVERSION
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/configure 2013-08-02 16:25:24.981094415 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/configure 2013-08-02 16:25:27.343097567 +0200
|
||||
@@ -689,6 +689,11 @@ PKGVERSION
|
||||
HAVE_NATIVE_GCORE_TARGET
|
||||
TARGET_OBS
|
||||
subdirs
|
||||
@ -722,7 +722,7 @@ Index: gdb-7.6/gdb/configure
|
||||
GDB_DATADIR
|
||||
DEBUGDIR
|
||||
MAKEINFO_EXTRA_FLAGS
|
||||
@@ -786,6 +791,7 @@ with_gdb_datadir
|
||||
@@ -789,6 +794,7 @@ with_gdb_datadir
|
||||
with_relocated_sources
|
||||
with_auto_load_dir
|
||||
with_auto_load_safe_path
|
||||
@ -730,7 +730,7 @@ Index: gdb-7.6/gdb/configure
|
||||
enable_targets
|
||||
enable_64_bit_bfd
|
||||
enable_gdbcli
|
||||
@@ -834,6 +840,11 @@ CPPFLAGS
|
||||
@@ -839,6 +845,11 @@ CPPFLAGS
|
||||
CPP
|
||||
MAKEINFO
|
||||
MAKEINFOFLAGS
|
||||
@ -742,7 +742,7 @@ Index: gdb-7.6/gdb/configure
|
||||
YACC
|
||||
YFLAGS
|
||||
XMKMF'
|
||||
@@ -1504,6 +1515,8 @@ Optional Packages:
|
||||
@@ -1509,6 +1520,8 @@ Optional Packages:
|
||||
[--with-auto-load-dir]
|
||||
--without-auto-load-safe-path
|
||||
do not restrict auto-loaded files locations
|
||||
@ -751,7 +751,7 @@ Index: gdb-7.6/gdb/configure
|
||||
--with-libunwind-ia64 use libunwind frame unwinding for ia64 targets
|
||||
--with-curses use the curses library instead of the termcap
|
||||
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.
|
||||
MAKEINFOFLAGS
|
||||
Parameters for MAKEINFO.
|
||||
@ -765,7 +765,7 @@ Index: gdb-7.6/gdb/configure
|
||||
YACC The `Yet Another C Compiler' implementation to use. Defaults to
|
||||
the first program found out of: `bison -y', `byacc', `yacc'.
|
||||
YFLAGS The list of arguments that will be passed by default to $YACC.
|
||||
@@ -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 "$with_auto_load_safe_path" >&6; }
|
||||
|
||||
@ -1257,11 +1257,11 @@ Index: gdb-7.6/gdb/configure
|
||||
|
||||
|
||||
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/gdb/configure.ac 2013-07-17 19:51:02.692357665 +0200
|
||||
@@ -166,6 +166,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escap
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/configure.ac 2013-08-02 16:25:24.983094418 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/configure.ac 2013-08-02 16:25:27.344097568 +0200
|
||||
@@ -164,6 +164,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escap
|
||||
[Directories safe to hold auto-loaded files.])
|
||||
AC_MSG_RESULT([$with_auto_load_safe_path])
|
||||
|
||||
@ -1461,11 +1461,11 @@ Index: gdb-7.6/gdb/configure.ac
|
||||
AC_CONFIG_SUBDIRS(testsuite)
|
||||
|
||||
# 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/gdb/corelow.c 2013-07-17 19:51:02.692357665 +0200
|
||||
@@ -314,7 +314,7 @@ build_id_locate_exec (int from_tty)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/corelow.c 2013-08-02 16:25:24.984094419 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/corelow.c 2013-08-02 16:25:27.344097568 +0200
|
||||
@@ -316,7 +316,7 @@ build_id_locate_exec (int from_tty)
|
||||
symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED;
|
||||
}
|
||||
else
|
||||
|
@ -1,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/gdb/corelow.c 2013-07-17 05:28:49.277203536 +0200
|
||||
@@ -46,6 +46,9 @@
|
||||
#include "progspace.h"
|
||||
#include "objfiles.h"
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/corelow.c 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/corelow.c 2013-08-02 17:07:28.434753293 +0200
|
||||
@@ -48,6 +48,9 @@
|
||||
#include "gdb_bfd.h"
|
||||
#include "completer.h"
|
||||
#include "filestuff.h"
|
||||
+#include "auxv.h"
|
||||
+#include "elf/common.h"
|
||||
+#include "gdbcmd.h"
|
||||
|
||||
#ifndef O_LARGEFILE
|
||||
#define O_LARGEFILE 0
|
||||
@@ -271,6 +274,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. */
|
||||
}
|
||||
|
||||
@ -66,7 +66,7 @@ Index: gdb-7.6/gdb/corelow.c
|
||||
/* This routine opens and sets up the core file bfd. */
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -81,10 +81,10 @@ Index: gdb-7.6/gdb/corelow.c
|
||||
post_create_inferior (&core_ops, from_tty);
|
||||
|
||||
/* 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 ();
|
||||
|
||||
add_target (&core_ops);
|
||||
add_target_with_completer (&core_ops, filename_completer);
|
||||
+
|
||||
+ add_setshow_boolean_cmd ("build-id-core-loads", class_files,
|
||||
+ &build_id_core_loads, _("\
|
||||
@ -93,11 +93,11 @@ Index: gdb-7.6/gdb/corelow.c
|
||||
+ NULL, NULL, NULL,
|
||||
+ &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/gdb/doc/gdb.texinfo 2013-07-17 05:28:49.286203539 +0200
|
||||
@@ -16831,6 +16831,27 @@ information files.
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/doc/gdb.texinfo 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo 2013-08-02 17:07:28.443753304 +0200
|
||||
@@ -17119,6 +17119,27 @@ information files.
|
||||
|
||||
@end table
|
||||
|
||||
@ -125,11 +125,11 @@ Index: gdb-7.6/gdb/doc/gdb.texinfo
|
||||
@cindex @code{.gnu_debuglink} sections
|
||||
@cindex debug link sections
|
||||
A debug link is a special section of the executable file named
|
||||
Index: gdb-7.6/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/gdb/solib-svr4.c 2013-07-17 05:28:49.287203539 +0200
|
||||
@@ -1224,9 +1224,52 @@ svr4_read_so_list (CORE_ADDR lm, struct
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/solib-svr4.c 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c 2013-08-02 17:07:28.444753305 +0200
|
||||
@@ -1365,9 +1365,52 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -185,10 +185,10 @@ Index: gdb-7.6/gdb/solib-svr4.c
|
||||
xfree (buffer);
|
||||
|
||||
/* 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/gdb/elfread.c 2013-07-17 05:31:21.242256141 +0200
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/elfread.c 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/elfread.c 2013-08-02 17:09:06.460881503 +0200
|
||||
@@ -45,6 +45,11 @@
|
||||
#include "regcache.h"
|
||||
#include "bcache.h"
|
||||
@ -201,7 +201,7 @@ Index: gdb-7.6/gdb/elfread.c
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -233,7 +233,7 @@ Index: gdb-7.6/gdb/elfread.c
|
||||
+ Elf_External_Note *xnp = (Elf_External_Note *) p;
|
||||
+ size_t namesz = H_GET_32 (templ, xnp->namesz);
|
||||
+ size_t descsz = H_GET_32 (templ, xnp->descsz);
|
||||
+ bfd_byte *descdata = xnp->name + BFD_ALIGN (namesz, 4);
|
||||
+ bfd_byte *descdata = (gdb_byte *) xnp->name + BFD_ALIGN (namesz, 4);
|
||||
+
|
||||
+ if (H_GET_32 (templ, xnp->type) == NT_GNU_BUILD_ID
|
||||
+ && namesz == sizeof "GNU"
|
||||
@ -263,7 +263,7 @@ Index: gdb-7.6/gdb/elfread.c
|
||||
{
|
||||
if (!bfd_check_format (abfd, bfd_object)
|
||||
|| 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;
|
||||
}
|
||||
|
||||
@ -612,7 +612,7 @@ Index: gdb-7.6/gdb/elfread.c
|
||||
/* Return if FILENAME has NT_GNU_BUILD_ID matching the CHECK value. */
|
||||
|
||||
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)
|
||||
return 0;
|
||||
|
||||
@ -621,7 +621,7 @@ Index: gdb-7.6/gdb/elfread.c
|
||||
|
||||
if (found == NULL)
|
||||
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 *
|
||||
@ -678,7 +678,7 @@ Index: gdb-7.6/gdb/elfread.c
|
||||
|
||||
/* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will
|
||||
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);
|
||||
const gdb_byte *data = build_id->data;
|
||||
size_t size = build_id->size;
|
||||
@ -690,7 +690,7 @@ Index: gdb-7.6/gdb/elfread.c
|
||||
|
||||
memcpy (link, debugdir, 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++ = '/';
|
||||
while (size-- > 0)
|
||||
s += sprintf (s, "%02x", (unsigned) *data++);
|
||||
@ -958,7 +958,7 @@ Index: gdb-7.6/gdb/elfread.c
|
||||
/* Prevent looping on a stripped .debug file. */
|
||||
if (build_id_name != NULL
|
||||
&& 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);
|
||||
}
|
||||
else if (build_id_name != NULL)
|
||||
@ -967,7 +967,7 @@ Index: gdb-7.6/gdb/elfread.c
|
||||
}
|
||||
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_backlink == NULL)
|
||||
{
|
||||
@ -980,7 +980,7 @@ Index: gdb-7.6/gdb/elfread.c
|
||||
|
||||
if (debugfile == NULL)
|
||||
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);
|
||||
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 ();
|
||||
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);
|
||||
}
|
||||
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/gdb/symfile.h 2013-07-17 05:28:49.291203541 +0200
|
||||
@@ -593,6 +593,12 @@ void free_symfile_segment_data (struct s
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/symfile.h 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/symfile.h 2013-08-02 17:07:28.446753308 +0200
|
||||
@@ -597,6 +597,12 @@ void free_symfile_segment_data (struct s
|
||||
|
||||
extern struct cleanup *increment_reading_symtab (void);
|
||||
|
||||
@ -1027,10 +1027,10 @@ Index: gdb-7.6/gdb/symfile.h
|
||||
/* From dwarf2read.c */
|
||||
|
||||
/* 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/gdb/testsuite/lib/gdb.exp 2013-07-17 05:28:49.292203541 +0200
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/lib/gdb.exp 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/gdb.exp 2013-08-02 17:07:28.446753308 +0200
|
||||
@@ -1482,6 +1482,16 @@ proc default_gdb_start { } {
|
||||
warning "Couldn't set the width to 0."
|
||||
}
|
||||
@ -1045,13 +1045,13 @@ Index: gdb-7.6/gdb/testsuite/lib/gdb.exp
|
||||
+ 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/gdb/testsuite/lib/mi-support.exp 2013-07-17 05:28:49.292203541 +0200
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/lib/mi-support.exp 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/mi-support.exp 2013-08-02 17:07:28.447753310 +0200
|
||||
@@ -212,6 +212,16 @@ proc default_mi_gdb_start { args } {
|
||||
warning "Couldn't set the width to 0."
|
||||
}
|
||||
@ -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
|
||||
# its own terminal device here.
|
||||
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/gdb/objfiles.h 2013-07-17 05:28:49.293203542 +0200
|
||||
@@ -432,6 +432,10 @@ struct objfile
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/objfiles.h 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/objfiles.h 2013-08-02 17:07:28.447753310 +0200
|
||||
@@ -429,6 +429,10 @@ struct objfile
|
||||
|
||||
#define OBJF_MAINLINE (1 << 5)
|
||||
|
||||
@ -1084,11 +1084,11 @@ Index: gdb-7.6/gdb/objfiles.h
|
||||
/* The object file that contains the runtime common minimal symbols
|
||||
for SunOS4. Note that this objfile has no associated BFD. */
|
||||
|
||||
Index: gdb-7.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/gdb/testsuite/gdb.base/corefile.exp 2013-07-17 05:28:49.293203542 +0200
|
||||
@@ -256,3 +256,33 @@ if ![is_remote target] {
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/corefile.exp 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/corefile.exp 2013-08-02 17:07:28.447753310 +0200
|
||||
@@ -255,3 +255,33 @@ if ![is_remote target] {
|
||||
|
||||
gdb_exit
|
||||
}
|
||||
|
@ -1,23 +1,23 @@
|
||||
Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.base/annota1.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota1.exp
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120602.orig/gdb/testsuite/gdb.base/annota1.exp 2012-03-16 17:47:33.000000000 +0100
|
||||
+++ gdb-7.4.50.20120602/gdb/testsuite/gdb.base/annota1.exp 2012-06-02 18:27:46.623210711 +0200
|
||||
@@ -45,6 +45,8 @@ gdb_start
|
||||
gdb_reinitialize_dir $srcdir/$subdir
|
||||
gdb_load ${binfile}
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/annota1.exp 2013-08-02 16:23:26.559936258 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota1.exp 2013-08-02 16:23:56.590976418 +0200
|
||||
@@ -41,6 +41,8 @@ if { [gdb_compile "${srcdir}/${subdir}/
|
||||
|
||||
clean_restart ${binfile}
|
||||
|
||||
+gdb_test "set breakpoint pending off" "" "Avoid lockup on nonexisting functions"
|
||||
+
|
||||
# The commands we test here produce many lines of output; disable "press
|
||||
# <return> to continue" prompts.
|
||||
gdb_test_no_output "set height 0"
|
||||
Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.base/annota3.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota3.exp
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120602.orig/gdb/testsuite/gdb.base/annota3.exp 2012-02-28 23:40:48.000000000 +0100
|
||||
+++ gdb-7.4.50.20120602/gdb/testsuite/gdb.base/annota3.exp 2012-06-02 18:28:00.375206457 +0200
|
||||
@@ -45,6 +45,8 @@ gdb_start
|
||||
gdb_reinitialize_dir $srcdir/$subdir
|
||||
gdb_load ${binfile}
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/annota3.exp 2013-08-02 16:23:26.560936259 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota3.exp 2013-08-02 16:24:11.654996267 +0200
|
||||
@@ -40,6 +40,8 @@ if { [gdb_compile "${srcdir}/${subdir}/
|
||||
|
||||
clean_restart ${binfile}
|
||||
|
||||
+gdb_test "set breakpoint pending off" "" "Avoid lockup on nonexisting functions"
|
||||
+
|
||||
|
@ -20,10 +20,10 @@ random FAIL: gdb.base/auxv.exp: matching auxv data from live and gcore
|
||||
gdb-6.8.50.20090209/gdb/testsuite/gdb.base/annota1.exp:
|
||||
frames-invalid can happen asynchronously.
|
||||
|
||||
Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/fileio.c
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120103.orig/gdb/testsuite/gdb.base/fileio.c 2009-10-01 17:39:13.000000000 +0200
|
||||
+++ gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.c 2012-01-03 15:21:28.122729249 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/fileio.c 2013-08-02 16:25:49.466127074 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/fileio.c 2013-08-02 16:26:11.724156750 +0200
|
||||
@@ -58,6 +58,8 @@ system (const char * string);
|
||||
1) Invalid string/command. - returns 127. */
|
||||
static const char *strerrno (int err);
|
||||
@ -71,12 +71,12 @@ Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.c
|
||||
/* Don't change the order of the calls. They partly depend on each other */
|
||||
test_open ();
|
||||
test_write ();
|
||||
Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/fileio.exp
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120103.orig/gdb/testsuite/gdb.base/fileio.exp 2011-12-26 12:24:55.000000000 +0100
|
||||
+++ gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.exp 2012-01-03 15:22:02.716601956 +0100
|
||||
@@ -42,8 +42,8 @@ if [get_compiler_info ${binfile}] {
|
||||
return -1;
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/fileio.exp 2013-08-02 16:25:49.467127075 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/fileio.exp 2013-08-02 16:27:10.142234618 +0200
|
||||
@@ -35,8 +35,8 @@ if [get_compiler_info] {
|
||||
return -1
|
||||
}
|
||||
|
||||
-remote_exec build {sh -xc test\ -r\ dir2.fileio.test\ &&\ chmod\ -f\ +w\ dir2.fileio.test}
|
||||
@ -86,7 +86,7 @@ Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.exp
|
||||
|
||||
set oldtimeout $timeout
|
||||
set timeout [expr "$timeout + 60"]
|
||||
@@ -85,7 +85,7 @@ gdb_test continue \
|
||||
@@ -78,7 +78,7 @@ gdb_test continue \
|
||||
|
||||
gdb_test "continue" ".*" ""
|
||||
|
||||
@ -95,7 +95,7 @@ Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.exp
|
||||
|
||||
gdb_test continue \
|
||||
"Continuing\\..*open 5:.*EACCES$stop_msg" \
|
||||
@@ -251,8 +251,8 @@ gdb_exit
|
||||
@@ -244,8 +244,8 @@ gdb_exit
|
||||
# Wait till GDB really exits.
|
||||
sleep 1
|
||||
|
||||
|
@ -5,11 +5,11 @@ Some of the threads may not be properly PTRACE_DETACHed which hurts if they
|
||||
should have been detached with SIGSTOP (as they are accidentally left running
|
||||
on the debugger termination).
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/defs.h
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/defs.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/defs.h 2013-01-01 07:32:41.000000000 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/defs.h 2013-01-21 16:40:29.889256633 +0100
|
||||
@@ -176,6 +176,7 @@ extern int check_quit_flag (void);
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/defs.h 2013-08-02 16:58:31.453016573 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/defs.h 2013-08-02 16:58:41.221030412 +0200
|
||||
@@ -177,6 +177,7 @@ extern int check_quit_flag (void);
|
||||
/* Set the quit flag. */
|
||||
extern void set_quit_flag (void);
|
||||
|
||||
@ -17,26 +17,26 @@ Index: gdb-7.5.50.20130118/gdb/defs.h
|
||||
extern int immediate_quit;
|
||||
|
||||
extern void quit (void);
|
||||
Index: gdb-7.5.50.20130118/gdb/top.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/top.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/top.c 2013-01-21 14:56:12.000000000 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/top.c 2013-01-21 14:56:16.385710056 +0100
|
||||
@@ -1329,7 +1329,9 @@ quit_force (char *args, int from_tty)
|
||||
qt.args = args;
|
||||
qt.from_tty = from_tty;
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/top.c 2013-08-02 16:58:41.222030414 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/top.c 2013-08-02 16:59:06.321066228 +0200
|
||||
@@ -1415,7 +1415,9 @@ quit_force (char *args, int from_tty)
|
||||
if (ex.reason < 0) \
|
||||
exception_print (gdb_stderr, ex)
|
||||
|
||||
- /* We want to handle any quit errors and exit regardless. */
|
||||
+ /* We want to handle any quit errors and exit regardless but we should never
|
||||
+ get user-interrupted to properly detach the inferior. */
|
||||
+ quit_flag_cleanup = 1;
|
||||
catch_errors (quit_target, &qt,
|
||||
"Quitting: ", RETURN_MASK_ALL);
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/utils.c
|
||||
/* Get out of tfind mode, and kill or detach all inferiors. */
|
||||
DO_TRY
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/utils.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/utils.c 2013-01-21 14:56:12.000000000 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/utils.c 2013-01-21 16:41:02.225233493 +0100
|
||||
@@ -141,6 +141,11 @@ int quit_flag;
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/utils.c 2013-08-02 16:58:31.455016575 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/utils.c 2013-08-02 16:58:41.223030415 +0200
|
||||
@@ -136,6 +136,11 @@ int quit_flag;
|
||||
|
||||
int immediate_quit;
|
||||
|
||||
@ -48,7 +48,7 @@ Index: gdb-7.5.50.20130118/gdb/utils.c
|
||||
#ifndef HAVE_PYTHON
|
||||
|
||||
/* Clear the quit flag. */
|
||||
@@ -164,6 +169,9 @@ set_quit_flag (void)
|
||||
@@ -159,6 +164,9 @@ set_quit_flag (void)
|
||||
int
|
||||
check_quit_flag (void)
|
||||
{
|
||||
@ -58,11 +58,11 @@ Index: gdb-7.5.50.20130118/gdb/utils.c
|
||||
/* This is written in a particular way to avoid races. */
|
||||
if (quit_flag)
|
||||
{
|
||||
Index: gdb-7.5.50.20130118/gdb/python/python.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/python/python.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/python/python.c 2013-01-21 16:39:03.000000000 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/python/python.c 2013-01-21 16:39:30.698299142 +0100
|
||||
@@ -181,6 +181,9 @@ set_quit_flag (void)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/python/python.c 2013-08-02 16:58:31.456016577 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/python/python.c 2013-08-02 16:58:41.224030416 +0200
|
||||
@@ -191,6 +191,9 @@ set_quit_flag (void)
|
||||
int
|
||||
check_quit_flag (void)
|
||||
{
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: gdb-7.5.50.20130215/gdb/breakpoint.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/breakpoint.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/breakpoint.c 2013-02-15 22:31:37.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/breakpoint.c 2013-02-15 22:37:08.216381988 +0100
|
||||
@@ -16020,6 +16020,50 @@ initialize_breakpoint_ops (void)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/breakpoint.c 2013-08-02 16:29:16.065402116 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/breakpoint.c 2013-08-02 16:29:17.073403456 +0200
|
||||
@@ -15963,6 +15963,50 @@ initialize_breakpoint_ops (void)
|
||||
static struct cmd_list_element *enablebreaklist = NULL;
|
||||
|
||||
void
|
||||
@ -53,23 +53,23 @@ Index: gdb-7.5.50.20130215/gdb/breakpoint.c
|
||||
_initialize_breakpoint (void)
|
||||
{
|
||||
struct cmd_list_element *c;
|
||||
Index: gdb-7.5.50.20130215/gdb/breakpoint.h
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/breakpoint.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/breakpoint.h 2013-02-03 16:57:06.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/breakpoint.h 2013-02-15 22:37:19.025395693 +0100
|
||||
@@ -1556,4 +1556,7 @@ extern void handle_solib_event (void);
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/breakpoint.h 2013-08-02 16:29:17.074403457 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/breakpoint.h 2013-08-02 16:29:30.221420896 +0200
|
||||
@@ -1555,4 +1555,7 @@ extern void breakpoint_free_objfile (str
|
||||
|
||||
extern void breakpoint_free_objfile (struct objfile *objfile);
|
||||
extern char *ep_parse_optional_if_clause (char **arg);
|
||||
|
||||
+extern void breakpoints_relocate (struct objfile *objfile,
|
||||
+ struct section_offsets *delta);
|
||||
+
|
||||
#endif /* !defined (BREAKPOINT_H) */
|
||||
Index: gdb-7.5.50.20130215/gdb/objfiles.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/objfiles.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/objfiles.c 2013-02-03 16:57:07.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/objfiles.c 2013-02-15 22:37:08.217381990 +0100
|
||||
@@ -831,6 +831,11 @@ objfile_relocate1 (struct objfile *objfi
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/objfiles.c 2013-08-02 16:29:16.068402120 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/objfiles.c 2013-08-02 16:29:17.075403458 +0200
|
||||
@@ -851,6 +851,11 @@ objfile_relocate1 (struct objfile *objfi
|
||||
objfile->sf->sym_probe_fns->sym_relocate_probe (objfile,
|
||||
new_offsets, delta);
|
||||
|
||||
|
750
gdb-archer.patch
750
gdb-archer.patch
File diff suppressed because it is too large
Load Diff
@ -37,10 +37,10 @@ gdb/gdbserver/
|
||||
(linux_create_inferior, linux_tracefork_child): Call it instead of
|
||||
direct ptrace.
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/common/linux-ptrace.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/common/linux-ptrace.c 2013-01-08 20:38:51.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/common/linux-ptrace.c 2013-02-15 22:38:05.782456279 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/common/linux-ptrace.c 2013-08-02 16:33:52.767872412 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.c 2013-08-02 16:34:16.122910934 +0200
|
||||
@@ -29,6 +29,10 @@
|
||||
#include "gdb_assert.h"
|
||||
#include "gdb_wait.h"
|
||||
@ -61,7 +61,7 @@ Index: gdb-7.5.50.20130215/gdb/common/linux-ptrace.c
|
||||
}
|
||||
|
||||
#if defined __i386__ || defined __x86_64__
|
||||
@@ -243,3 +249,19 @@ linux_ptrace_init_warnings (void)
|
||||
@@ -236,3 +242,19 @@ linux_ptrace_init_warnings (void)
|
||||
|
||||
linux_ptrace_test_ret_to_nx ();
|
||||
}
|
||||
@ -81,10 +81,10 @@ Index: gdb-7.5.50.20130215/gdb/common/linux-ptrace.c
|
||||
+ "(gdb) shell sudo setsebool deny_ptrace=0"));
|
||||
+#endif /* HAVE_LIBSELINUX */
|
||||
+}
|
||||
Index: gdb-7.5.50.20130215/gdb/common/linux-ptrace.h
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/common/linux-ptrace.h 2013-01-01 07:32:54.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/common/linux-ptrace.h 2013-02-15 22:38:05.782456279 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/common/linux-ptrace.h 2013-08-02 16:33:52.768872414 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.h 2013-08-02 16:34:16.122910934 +0200
|
||||
@@ -69,5 +69,6 @@ struct buffer;
|
||||
|
||||
extern void linux_ptrace_attach_warnings (pid_t pid, struct buffer *buffer);
|
||||
@ -92,13 +92,13 @@ Index: gdb-7.5.50.20130215/gdb/common/linux-ptrace.h
|
||||
+extern void linux_ptrace_create_warnings (struct buffer *buffer);
|
||||
|
||||
#endif /* COMMON_LINUX_PTRACE_H */
|
||||
Index: gdb-7.5.50.20130215/gdb/configure.ac
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/configure.ac
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/configure.ac 2013-02-15 22:37:57.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/configure.ac 2013-02-15 22:38:05.783456281 +0100
|
||||
@@ -2068,6 +2068,10 @@ then
|
||||
[Define if you support the personality syscall.])
|
||||
fi
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/configure.ac 2013-08-02 16:34:16.123910936 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/configure.ac 2013-08-02 16:34:46.519960063 +0200
|
||||
@@ -2071,6 +2071,10 @@ case $host_os in
|
||||
esac
|
||||
AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
|
||||
|
||||
+dnl Check security_get_boolean_active availability.
|
||||
+AC_CHECK_HEADERS(selinux/selinux.h)
|
||||
@ -107,11 +107,11 @@ Index: gdb-7.5.50.20130215/gdb/configure.ac
|
||||
dnl Handle optional features that can be enabled.
|
||||
|
||||
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
|
||||
Index: gdb-7.5.50.20130215/gdb/gdbserver/configure.ac
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/configure.ac
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/gdbserver/configure.ac 2013-01-01 07:33:00.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/gdbserver/configure.ac 2013-02-15 22:38:05.783456281 +0100
|
||||
@@ -451,6 +451,10 @@ if $want_ipa ; then
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/gdbserver/configure.ac 2013-08-02 16:34:16.124910938 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/gdbserver/configure.ac 2013-08-02 16:35:06.634991892 +0200
|
||||
@@ -471,6 +471,10 @@ if $want_ipa ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -121,12 +121,12 @@ Index: gdb-7.5.50.20130215/gdb/gdbserver/configure.ac
|
||||
+
|
||||
AC_SUBST(GDBSERVER_DEPFILES)
|
||||
AC_SUBST(GDBSERVER_LIBS)
|
||||
AC_SUBST(USE_THREAD_DB)
|
||||
Index: gdb-7.5.50.20130215/gdb/gdbserver/linux-low.c
|
||||
AC_SUBST(srv_xmlbuiltin)
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/linux-low.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/gdbserver/linux-low.c 2013-02-04 18:47:00.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/gdbserver/linux-low.c 2013-02-15 22:39:54.256591069 +0100
|
||||
@@ -602,6 +602,29 @@ add_lwp (ptid_t ptid)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/gdbserver/linux-low.c 2013-08-02 16:33:52.772872421 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/gdbserver/linux-low.c 2013-08-02 16:34:16.126910941 +0200
|
||||
@@ -622,6 +622,29 @@ add_lwp (ptid_t ptid)
|
||||
return lwp;
|
||||
}
|
||||
|
||||
@ -156,7 +156,7 @@ Index: gdb-7.5.50.20130215/gdb/gdbserver/linux-low.c
|
||||
/* Start an inferior process and returns its pid.
|
||||
ALLARGS is a vector of program-name and args. */
|
||||
|
||||
@@ -642,7 +665,7 @@ linux_create_inferior (char *program, ch
|
||||
@@ -662,7 +685,7 @@ linux_create_inferior (char *program, ch
|
||||
|
||||
if (pid == 0)
|
||||
{
|
||||
@ -165,7 +165,7 @@ Index: gdb-7.5.50.20130215/gdb/gdbserver/linux-low.c
|
||||
|
||||
#ifndef __ANDROID__ /* Bionic doesn't use SIGRTMIN the way glibc does. */
|
||||
signal (__SIGRTMIN + 1, SIG_DFL);
|
||||
@@ -4587,7 +4610,7 @@ linux_tracefork_grandchild (void *arg)
|
||||
@@ -4685,7 +4708,7 @@ linux_tracefork_grandchild (void *arg)
|
||||
static int
|
||||
linux_tracefork_child (void *arg)
|
||||
{
|
||||
@ -174,10 +174,10 @@ Index: gdb-7.5.50.20130215/gdb/gdbserver/linux-low.c
|
||||
kill (getpid (), SIGSTOP);
|
||||
|
||||
#if !(defined(__UCLIBC__) && defined(HAS_NOMMU))
|
||||
Index: gdb-7.5.50.20130215/gdb/inf-ptrace.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/inf-ptrace.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/inf-ptrace.c 2013-01-01 07:32:45.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/inf-ptrace.c 2013-02-15 22:38:05.786456289 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/inf-ptrace.c 2013-08-02 16:33:52.772872421 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/inf-ptrace.c 2013-08-02 16:34:16.126910941 +0200
|
||||
@@ -104,7 +104,15 @@ static void
|
||||
inf_ptrace_me (void)
|
||||
{
|
||||
@ -194,11 +194,11 @@ Index: gdb-7.5.50.20130215/gdb/inf-ptrace.c
|
||||
}
|
||||
|
||||
/* Start a new inferior Unix child process. EXEC_FILE is the file to
|
||||
Index: gdb-7.5.50.20130215/gdb/linux-nat.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/linux-nat.c 2013-02-15 22:34:44.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/linux-nat.c 2013-02-15 22:38:05.787456291 +0100
|
||||
@@ -1557,6 +1557,7 @@ linux_nat_create_inferior (struct target
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/linux-nat.c 2013-08-02 16:33:52.774872424 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/linux-nat.c 2013-08-02 16:34:16.128910944 +0200
|
||||
@@ -1554,6 +1554,7 @@ linux_nat_create_inferior (struct target
|
||||
#ifdef HAVE_PERSONALITY
|
||||
int personality_orig = 0, personality_set = 0;
|
||||
#endif /* HAVE_PERSONALITY */
|
||||
@ -206,7 +206,7 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c
|
||||
|
||||
/* The fork_child mechanism is synchronous and calls target_wait, so
|
||||
we have to mask the async mode. */
|
||||
@@ -1581,7 +1582,10 @@ linux_nat_create_inferior (struct target
|
||||
@@ -1578,7 +1579,10 @@ linux_nat_create_inferior (struct target
|
||||
/* Make sure we report all signals during startup. */
|
||||
linux_nat_pass_signals (0, NULL);
|
||||
|
||||
@ -218,7 +218,7 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c
|
||||
|
||||
#ifdef HAVE_PERSONALITY
|
||||
if (personality_set)
|
||||
@@ -1593,6 +1597,24 @@ linux_nat_create_inferior (struct target
|
||||
@@ -1590,6 +1594,24 @@ linux_nat_create_inferior (struct target
|
||||
safe_strerror (errno));
|
||||
}
|
||||
#endif /* HAVE_PERSONALITY */
|
||||
@ -243,3 +243,192 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c
|
||||
}
|
||||
|
||||
static void
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/config.in
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/config.in 2013-08-02 16:25:27.339097561 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/config.in 2013-08-02 16:36:16.249099841 +0200
|
||||
@@ -225,6 +225,9 @@
|
||||
/* Define if librpm library is being used. */
|
||||
#undef HAVE_LIBRPM
|
||||
|
||||
+/* Define to 1 if you have the `selinux' library (-lselinux). */
|
||||
+#undef HAVE_LIBSELINUX
|
||||
+
|
||||
/* Define to 1 if you have the <libunwind-ia64.h> header file. */
|
||||
#undef HAVE_LIBUNWIND_IA64_H
|
||||
|
||||
@@ -372,6 +375,9 @@
|
||||
/* Define to 1 if you have the `sbrk' function. */
|
||||
#undef HAVE_SBRK
|
||||
|
||||
+/* Define to 1 if you have the <selinux/selinux.h> header file. */
|
||||
+#undef HAVE_SELINUX_SELINUX_H
|
||||
+
|
||||
/* Define to 1 if you have the `setlocale' function. */
|
||||
#undef HAVE_SETLOCALE
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/configure
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/configure 2013-08-02 16:25:27.343097567 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/configure 2013-08-02 16:36:14.665097434 +0200
|
||||
@@ -12851,6 +12851,64 @@ cat >>confdefs.h <<_ACEOF
|
||||
_ACEOF
|
||||
|
||||
|
||||
+for ac_header in selinux/selinux.h
|
||||
+do :
|
||||
+ ac_fn_c_check_header_mongrel "$LINENO" "selinux/selinux.h" "ac_cv_header_selinux_selinux_h" "$ac_includes_default"
|
||||
+if test "x$ac_cv_header_selinux_selinux_h" = x""yes; then :
|
||||
+ cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_SELINUX_SELINUX_H 1
|
||||
+_ACEOF
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+done
|
||||
+
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for security_get_boolean_active in -lselinux" >&5
|
||||
+$as_echo_n "checking for security_get_boolean_active in -lselinux... " >&6; }
|
||||
+if test "${ac_cv_lib_selinux_security_get_boolean_active+set}" = set; then :
|
||||
+ $as_echo_n "(cached) " >&6
|
||||
+else
|
||||
+ ac_check_lib_save_LIBS=$LIBS
|
||||
+LIBS="-lselinux $LIBS"
|
||||
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
+/* end confdefs.h. */
|
||||
+
|
||||
+/* Override any GCC internal prototype to avoid an error.
|
||||
+ Use char because int might match the return type of a GCC
|
||||
+ builtin and then its argument prototype would still apply. */
|
||||
+#ifdef __cplusplus
|
||||
+extern "C"
|
||||
+#endif
|
||||
+char security_get_boolean_active ();
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+return security_get_boolean_active ();
|
||||
+ ;
|
||||
+ return 0;
|
||||
+}
|
||||
+_ACEOF
|
||||
+if ac_fn_c_try_link "$LINENO"; then :
|
||||
+ ac_cv_lib_selinux_security_get_boolean_active=yes
|
||||
+else
|
||||
+ ac_cv_lib_selinux_security_get_boolean_active=no
|
||||
+fi
|
||||
+rm -f core conftest.err conftest.$ac_objext \
|
||||
+ conftest$ac_exeext conftest.$ac_ext
|
||||
+LIBS=$ac_check_lib_save_LIBS
|
||||
+fi
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_security_get_boolean_active" >&5
|
||||
+$as_echo "$ac_cv_lib_selinux_security_get_boolean_active" >&6; }
|
||||
+if test "x$ac_cv_lib_selinux_security_get_boolean_active" = x""yes; then :
|
||||
+ cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_LIBSELINUX 1
|
||||
+_ACEOF
|
||||
+
|
||||
+ LIBS="-lselinux $LIBS"
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+
|
||||
|
||||
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
|
||||
# except that the argument to --with-sysroot is optional.
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/config.in
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/gdbserver/config.in 2013-07-31 21:41:54.000000000 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/gdbserver/config.in 2013-08-02 16:36:21.719108141 +0200
|
||||
@@ -76,6 +76,12 @@
|
||||
/* Define to 1 if you have the `dl' library (-ldl). */
|
||||
#undef HAVE_LIBDL
|
||||
|
||||
+/* Define to 1 if you have the `mcheck' library (-lmcheck). */
|
||||
+#undef HAVE_LIBMCHECK
|
||||
+
|
||||
+/* Define to 1 if you have the `selinux' library (-lselinux). */
|
||||
+#undef HAVE_LIBSELINUX
|
||||
+
|
||||
/* Define if the target supports branch tracing. */
|
||||
#undef HAVE_LINUX_BTRACE
|
||||
|
||||
@@ -146,6 +152,9 @@
|
||||
/* Define to 1 if you have the `readlink' function. */
|
||||
#undef HAVE_READLINK
|
||||
|
||||
+/* Define to 1 if you have the <selinux/selinux.h> header file. */
|
||||
+#undef HAVE_SELINUX_SELINUX_H
|
||||
+
|
||||
/* Define to 1 if you have the <sgtty.h> header file. */
|
||||
#undef HAVE_SGTTY_H
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/configure
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/gdbserver/configure 2013-07-31 21:41:54.000000000 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/gdbserver/configure 2013-08-02 16:36:20.237105894 +0200
|
||||
@@ -6003,6 +6003,64 @@ if $want_ipa ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
+for ac_header in selinux/selinux.h
|
||||
+do :
|
||||
+ ac_fn_c_check_header_mongrel "$LINENO" "selinux/selinux.h" "ac_cv_header_selinux_selinux_h" "$ac_includes_default"
|
||||
+if test "x$ac_cv_header_selinux_selinux_h" = x""yes; then :
|
||||
+ cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_SELINUX_SELINUX_H 1
|
||||
+_ACEOF
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+done
|
||||
+
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for security_get_boolean_active in -lselinux" >&5
|
||||
+$as_echo_n "checking for security_get_boolean_active in -lselinux... " >&6; }
|
||||
+if test "${ac_cv_lib_selinux_security_get_boolean_active+set}" = set; then :
|
||||
+ $as_echo_n "(cached) " >&6
|
||||
+else
|
||||
+ ac_check_lib_save_LIBS=$LIBS
|
||||
+LIBS="-lselinux $LIBS"
|
||||
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
+/* end confdefs.h. */
|
||||
+
|
||||
+/* Override any GCC internal prototype to avoid an error.
|
||||
+ Use char because int might match the return type of a GCC
|
||||
+ builtin and then its argument prototype would still apply. */
|
||||
+#ifdef __cplusplus
|
||||
+extern "C"
|
||||
+#endif
|
||||
+char security_get_boolean_active ();
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+return security_get_boolean_active ();
|
||||
+ ;
|
||||
+ return 0;
|
||||
+}
|
||||
+_ACEOF
|
||||
+if ac_fn_c_try_link "$LINENO"; then :
|
||||
+ ac_cv_lib_selinux_security_get_boolean_active=yes
|
||||
+else
|
||||
+ ac_cv_lib_selinux_security_get_boolean_active=no
|
||||
+fi
|
||||
+rm -f core conftest.err conftest.$ac_objext \
|
||||
+ conftest$ac_exeext conftest.$ac_ext
|
||||
+LIBS=$ac_check_lib_save_LIBS
|
||||
+fi
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_security_get_boolean_active" >&5
|
||||
+$as_echo "$ac_cv_lib_selinux_security_get_boolean_active" >&6; }
|
||||
+if test "x$ac_cv_lib_selinux_security_get_boolean_active" = x""yes; then :
|
||||
+ cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_LIBSELINUX 1
|
||||
+_ACEOF
|
||||
+
|
||||
+ LIBS="-lselinux $LIBS"
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+
|
||||
|
||||
|
||||
|
||||
|
@ -1,186 +0,0 @@
|
||||
Index: gdb-7.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
|
||||
+
|
||||
+
|
||||
|
||||
|
||||
|
@ -21,16 +21,16 @@ debugging problem of GOMP outside of the scope of this Bug.
|
||||
|
||||
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/infrun.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/infrun.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/infrun.c 2013-01-19 23:38:22.329371410 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/infrun.c 2013-01-19 23:39:03.322429041 +0100
|
||||
@@ -4918,6 +4918,16 @@ process_event_stop_test:
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/infrun.c 2013-08-02 17:10:08.446962958 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/infrun.c 2013-08-02 17:10:49.109016685 +0200
|
||||
@@ -4930,6 +4930,16 @@ process_event_stop_test:
|
||||
|
||||
if (ecs->event_thread->control.step_over_calls == STEP_OVER_ALL)
|
||||
{
|
||||
+ struct symbol *stop_fn = find_pc_function (stop_pc);
|
||||
+ struct minimal_symbol *stopf = lookup_minimal_symbol_by_pc (stop_pc);
|
||||
+ struct minimal_symbol *stopf = lookup_minimal_symbol_by_pc (stop_pc).minsym;
|
||||
+
|
||||
+ if ((stop_fn == NULL
|
||||
+ || strstr (SYMBOL_LINKAGE_NAME (stop_fn), ".omp_fn.") == NULL)
|
||||
@ -42,7 +42,7 @@ Index: gdb-7.5.50.20130118/gdb/infrun.c
|
||||
/* We're doing a "next".
|
||||
|
||||
Normal (forward) execution: set a breakpoint at the
|
||||
@@ -4953,6 +4963,7 @@ process_event_stop_test:
|
||||
@@ -4965,6 +4975,7 @@ process_event_stop_test:
|
||||
|
||||
keep_going (ecs);
|
||||
return;
|
||||
@ -50,10 +50,10 @@ Index: gdb-7.5.50.20130118/gdb/infrun.c
|
||||
}
|
||||
|
||||
/* If we are in a function call trampoline (a stub between the
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.fortran/omp-step.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.exp 2013-01-19 23:38:23.213372622 +0100
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.fortran/omp-step.exp 2013-08-02 17:10:37.063000571 +0200
|
||||
@@ -0,0 +1,31 @@
|
||||
+# Copyright 2009 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -86,10 +86,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.exp
|
||||
+
|
||||
+gdb_breakpoint [gdb_get_line_number "success"]
|
||||
+gdb_continue_to_breakpoint "success" ".*success.*"
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.f90
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.fortran/omp-step.f90
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.f90 2013-01-19 23:38:23.213372622 +0100
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.fortran/omp-step.f90 2013-08-02 17:10:37.063000571 +0200
|
||||
@@ -0,0 +1,32 @@
|
||||
+! Copyright 2009 Free Software Foundation, Inc.
|
||||
+
|
||||
|
@ -3,11 +3,11 @@ Subject: [patch] Fix GNU/Linux core open: Can't read pathname for load map: Inp
|
||||
|
||||
[ New patch variant. ]
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/solib-svr4.c 2013-01-18 23:05:19.414210015 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/solib-svr4.c 2013-01-18 23:05:34.813231664 +0100
|
||||
@@ -1221,8 +1221,17 @@ svr4_read_so_list (CORE_ADDR lm, struct
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/solib-svr4.c 2013-08-02 16:27:28.831259468 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c 2013-08-02 16:27:47.871284813 +0200
|
||||
@@ -1359,8 +1359,17 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
|
||||
SO_NAME_MAX_PATH_SIZE - 1, &errcode);
|
||||
if (errcode != 0)
|
||||
{
|
||||
@ -27,20 +27,20 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
|
||||
do_cleanups (old_chain);
|
||||
continue;
|
||||
}
|
||||
Index: gdb-7.5.50.20130118/gdb/solib.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/solib.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/solib.c 2013-01-18 23:05:19.415210017 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/solib.c 2013-01-18 23:05:57.421263173 +0100
|
||||
@@ -666,7 +666,7 @@ solib_used (const struct so_list *const
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/solib.c 2013-08-02 16:27:28.832259470 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/solib.c 2013-08-02 16:28:50.421367694 +0200
|
||||
@@ -669,7 +669,7 @@ solib_used (const struct so_list *const
|
||||
processes we've just attached to, so that's okay. */
|
||||
|
||||
static void
|
||||
-update_solib_list (int from_tty, struct target_ops *target)
|
||||
+update_solib_list_1 (int from_tty, struct target_ops *target)
|
||||
{
|
||||
struct target_so_ops *ops = solib_ops (target_gdbarch ());
|
||||
const struct target_so_ops *ops = solib_ops (target_gdbarch ());
|
||||
struct so_list *inferior = ops->current_sos();
|
||||
@@ -837,6 +837,21 @@ Do you need \"set solib-search-path\" or
|
||||
@@ -840,6 +840,21 @@ Do you need \"set solib-search-path\" or
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,11 +62,11 @@ Index: gdb-7.5.50.20130118/gdb/solib.c
|
||||
|
||||
/* Return non-zero if NAME is the libpthread shared library.
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/corefile.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/corefile.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.base/corefile.exp 2013-01-18 23:05:19.416210020 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/corefile.exp 2013-01-18 23:05:34.814231667 +0100
|
||||
@@ -286,3 +286,19 @@ if {$buildid == ""} {
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/corefile.exp 2013-08-02 16:27:28.833259471 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/corefile.exp 2013-08-02 16:27:47.872284814 +0200
|
||||
@@ -285,3 +285,19 @@ if {$buildid == ""} {
|
||||
gdb_test "info files" "Local exec file:\r\n\[ \t\]*`[string_to_regexp $debugdir/$buildid]', file type .*"
|
||||
pass $wholetest
|
||||
}
|
||||
@ -86,20 +86,18 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/corefile.exp
|
||||
+ pass $test
|
||||
+ }
|
||||
+}
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/solib-symbol.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/solib-symbol.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.base/solib-symbol.exp 2013-01-18 23:05:19.416210020 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/solib-symbol.exp 2013-01-18 23:05:34.814231667 +0100
|
||||
@@ -27,7 +27,8 @@ set lib_flags [list debug ldflags=-Wl,-B
|
||||
# Binary file.
|
||||
set testfile "solib-symbol-main"
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/solib-symbol.exp 2013-08-02 16:27:28.833259471 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/solib-symbol.exp 2013-08-02 16:28:22.549330973 +0200
|
||||
@@ -29,6 +29,7 @@ set testfile "solib-symbol-main"
|
||||
set srcfile ${srcdir}/${subdir}/${testfile}.c
|
||||
-set binfile ${objdir}/${subdir}/${testfile}
|
||||
+set executable ${testfile}
|
||||
+set binfile ${objdir}/${subdir}/${executable}
|
||||
set binfile [standard_output_file ${testfile}]
|
||||
set bin_flags [list debug shlib=${binfile_lib}]
|
||||
+set executable ${testfile}
|
||||
|
||||
if [get_compiler_info] {
|
||||
return -1
|
||||
@@ -72,8 +73,26 @@ gdb_test "br foo2" \
|
||||
"Breakpoint.*: foo2. .2 locations..*" \
|
||||
"foo2 in mdlib"
|
||||
|
@ -1,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.
|
@ -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"
|
@ -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,
|
@ -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,
|
@ -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
|
@ -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.
|
@ -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
|
@ -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
@ -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
|
||||
}
|
||||
|
@ -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
|
@ -40,11 +40,11 @@ Subject: [PATCH 4/4] add gdb-add-index
|
||||
5 files changed, 57 insertions(+), 1 deletions(-)
|
||||
create mode 100755 gdb/gdb-add-index
|
||||
|
||||
Index: gdb-7.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.5.91.20130407/gdb/Makefile.in 2013-04-11 16:53:59.199279388 +0200
|
||||
@@ -1053,6 +1053,15 @@ install-only: install-gstack $(CONFIG_IN
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/Makefile.in 2013-08-02 16:31:59.603674194 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/Makefile.in 2013-08-02 16:32:08.260690156 +0200
|
||||
@@ -1070,6 +1070,15 @@ install-only: install-gstack $(CONFIG_IN
|
||||
$(INSTALL_PROGRAM) gcore \
|
||||
$(DESTDIR)$(bindir)/$$transformed_name; \
|
||||
fi
|
||||
@ -60,11 +60,11 @@ Index: gdb-7.5.91.20130407/gdb/Makefile.in
|
||||
@$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
|
||||
|
||||
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.5.91.20130407/gdb/doc/gdb.texinfo 2013-04-11 16:55:07.004278842 +0200
|
||||
@@ -17159,6 +17159,14 @@ There are currently some limitation on i
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/doc/gdb.texinfo 2013-08-02 16:31:59.616674218 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo 2013-08-02 16:32:08.271690176 +0200
|
||||
@@ -17447,6 +17447,14 @@ There are currently some limitation on i
|
||||
for DWARF debugging information, not stabs. And, they do not
|
||||
currently work for programs using Ada.
|
||||
|
||||
@ -79,7 +79,7 @@ Index: gdb-7.5.91.20130407/gdb/doc/gdb.texinfo
|
||||
@node Symbol Errors
|
||||
@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
|
||||
* gcore man:: Generate a core file of a running program
|
||||
* gdbinit man:: gdbinit scripts
|
||||
@ -87,7 +87,7 @@ Index: gdb-7.5.91.20130407/gdb/doc/gdb.texinfo
|
||||
@end menu
|
||||
|
||||
@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.
|
||||
If the @code{info} and @code{gdb} programs and @value{GDBN}'s Texinfo
|
||||
documentation are properly installed at your site, the command
|
||||
@ -142,10 +142,10 @@ Index: gdb-7.5.91.20130407/gdb/doc/gdb.texinfo
|
||||
|
||||
@smallexample
|
||||
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
|
||||
+++ 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 @@
|
||||
+#! /bin/sh
|
||||
+
|
||||
@ -177,12 +177,12 @@ Index: gdb-7.5.91.20130407/gdb/gdb-add-index
|
||||
+fi
|
||||
+
|
||||
+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.5.91.20130407/gdb/doc/Makefile.in 2013-04-11 16:55:06.993279304 +0200
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/doc/Makefile.in 2013-08-02 16:31:59.618674222 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/doc/Makefile.in 2013-08-02 16:32:28.828727314 +0200
|
||||
@@ -177,7 +177,7 @@ POD2MAN5 = pod2man --center="GNU Develop
|
||||
--release="gdb-`sed q $(srcdir)/../version.in`" --section=5
|
||||
--release="gdb-`sed q version.subst`" --section=5
|
||||
|
||||
# List of man pages generated from gdb.texi
|
||||
-MAN1S = gdb.1 gdbserver.1 gcore.1
|
||||
@ -190,7 +190,7 @@ Index: gdb-7.5.91.20130407/gdb/doc/Makefile.in
|
||||
MAN5S = gdbinit.5
|
||||
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)
|
||||
rm -f gcore.pod
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
Index: gdb-7.5.50.20130118/gdb/dwarf2read.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/dwarf2read.c 2013-01-19 21:16:22.437961789 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/dwarf2read.c 2013-01-19 21:24:22.242969266 +0100
|
||||
@@ -15987,6 +15987,25 @@ new_symbol_full (struct die_info *die, s
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/dwarf2read.c 2013-08-02 16:37:51.619241696 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/dwarf2read.c 2013-08-02 16:38:16.159277461 +0200
|
||||
@@ -16654,6 +16654,25 @@ new_symbol_full (struct die_info *die, s
|
||||
/* Cache this symbol's name and the name's demangled form (if any). */
|
||||
SYMBOL_SET_LANGUAGE (sym, cu->language);
|
||||
SYMBOL_SET_LANGUAGE (sym, cu->language, &objfile->objfile_obstack);
|
||||
linkagename = dwarf2_physname (name, die, cu);
|
||||
+
|
||||
+ /* Workaround for:
|
||||
@ -28,10 +28,10 @@ Index: gdb-7.5.50.20130118/gdb/dwarf2read.c
|
||||
SYMBOL_SET_NAMES (sym, linkagename, strlen (linkagename), 0, objfile);
|
||||
|
||||
/* Fortran does not have mangling standard and the mangling does differ
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp 2013-01-19 21:23:09.119827963 +0100
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp 2013-08-02 16:37:51.620241697 +0200
|
||||
@@ -0,0 +1,108 @@
|
||||
+# Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
+
|
||||
|
@ -1,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}},
|
||||
};
|
@ -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
|
@ -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
@ -96,10 +96,10 @@ Content-Type: text/x-patch
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Content-Disposition: attachment; filename=bitpos-wp.patch
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/arm-linux-nat.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/arm-linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/arm-linux-nat.c 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/arm-linux-nat.c 2013-02-15 22:42:45.988804306 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/arm-linux-nat.c 2013-08-02 16:42:29.565632895 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/arm-linux-nat.c 2013-08-02 16:42:34.094639104 +0200
|
||||
@@ -1105,7 +1105,7 @@ arm_linux_region_ok_for_hw_watchpoint (C
|
||||
|
||||
/* Insert a Hardware breakpoint. */
|
||||
@ -127,10 +127,10 @@ Index: gdb-7.5.50.20130215/gdb/arm-linux-nat.c
|
||||
{
|
||||
return start <= addr && start + length - 1 >= addr;
|
||||
}
|
||||
Index: gdb-7.5.50.20130215/gdb/i386-nat.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/i386-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/i386-nat.c 2013-02-15 22:41:53.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/i386-nat.c 2013-02-15 22:43:14.005838741 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/i386-nat.c 2013-08-02 16:42:29.566632896 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/i386-nat.c 2013-08-02 16:42:34.095639105 +0200
|
||||
@@ -589,7 +589,7 @@ i386_update_inferior_debug_regs (struct
|
||||
of the type TYPE. Return 0 on success, -1 on failure. */
|
||||
|
||||
@ -149,10 +149,10 @@ Index: gdb-7.5.50.20130215/gdb/i386-nat.c
|
||||
struct expression *cond)
|
||||
{
|
||||
struct i386_debug_reg_state *state
|
||||
Index: gdb-7.5.50.20130215/gdb/ia64-linux-nat.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/ia64-linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/ia64-linux-nat.c 2013-02-15 22:34:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/ia64-linux-nat.c 2013-02-15 22:42:45.989804309 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/ia64-linux-nat.c 2013-08-02 16:42:29.566632896 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/ia64-linux-nat.c 2013-08-02 16:42:34.095639105 +0200
|
||||
@@ -542,7 +542,7 @@ is_power_of_2 (int val)
|
||||
}
|
||||
|
||||
@ -171,11 +171,11 @@ Index: gdb-7.5.50.20130215/gdb/ia64-linux-nat.c
|
||||
struct expression *cond)
|
||||
{
|
||||
int idx;
|
||||
Index: gdb-7.5.50.20130215/gdb/inf-ttrace.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/inf-ttrace.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/inf-ttrace.c 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/inf-ttrace.c 2013-02-15 22:42:45.989804309 +0100
|
||||
@@ -313,14 +313,14 @@ inf_ttrace_disable_page_protections (pid
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/inf-ttrace.c 2013-08-02 16:42:29.567632898 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/inf-ttrace.c 2013-08-02 16:42:34.095639105 +0200
|
||||
@@ -314,14 +314,14 @@ inf_ttrace_disable_page_protections (pid
|
||||
type TYPE. */
|
||||
|
||||
static int
|
||||
@ -193,7 +193,7 @@ Index: gdb-7.5.50.20130215/gdb/inf-ttrace.c
|
||||
|
||||
gdb_assert (type == hw_write);
|
||||
|
||||
@@ -337,14 +337,14 @@ inf_ttrace_insert_watchpoint (CORE_ADDR
|
||||
@@ -338,14 +338,14 @@ inf_ttrace_insert_watchpoint (CORE_ADDR
|
||||
type TYPE. */
|
||||
|
||||
static int
|
||||
@ -211,11 +211,11 @@ Index: gdb-7.5.50.20130215/gdb/inf-ttrace.c
|
||||
|
||||
gdb_assert (type == hw_write);
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/mips-linux-nat.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/mips-linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/mips-linux-nat.c 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/mips-linux-nat.c 2013-02-15 22:42:45.990804311 +0100
|
||||
@@ -1017,7 +1017,7 @@ populate_regs_from_watches (struct pt_wa
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/mips-linux-nat.c 2013-08-02 16:42:29.568632899 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/mips-linux-nat.c 2013-08-02 16:42:34.096639106 +0200
|
||||
@@ -644,7 +644,7 @@ mips_linux_new_thread (struct lwp_info *
|
||||
watch. Return zero on success. */
|
||||
|
||||
static int
|
||||
@ -224,7 +224,7 @@ Index: gdb-7.5.50.20130215/gdb/mips-linux-nat.c
|
||||
struct expression *cond)
|
||||
{
|
||||
struct pt_watch_regs regs;
|
||||
@@ -1067,7 +1067,7 @@ mips_linux_insert_watchpoint (CORE_ADDR
|
||||
@@ -697,7 +697,7 @@ mips_linux_insert_watchpoint (CORE_ADDR
|
||||
Return zero on success. */
|
||||
|
||||
static int
|
||||
@ -233,10 +233,10 @@ Index: gdb-7.5.50.20130215/gdb/mips-linux-nat.c
|
||||
struct expression *cond)
|
||||
{
|
||||
int retval;
|
||||
Index: gdb-7.5.50.20130215/gdb/nto-procfs.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/nto-procfs.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/nto-procfs.c 2013-01-01 07:32:47.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/nto-procfs.c 2013-02-15 22:42:45.990804311 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/nto-procfs.c 2013-08-02 16:42:29.568632899 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/nto-procfs.c 2013-08-02 16:42:34.096639106 +0200
|
||||
@@ -69,10 +69,10 @@ static ptid_t do_attach (ptid_t ptid);
|
||||
|
||||
static int procfs_can_use_hw_breakpoint (int, int, int);
|
||||
@ -267,11 +267,11 @@ Index: gdb-7.5.50.20130215/gdb/nto-procfs.c
|
||||
struct expression *cond)
|
||||
{
|
||||
return procfs_hw_watchpoint (addr, len, type);
|
||||
Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/ppc-linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/ppc-linux-nat.c 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/ppc-linux-nat.c 2013-02-15 22:42:45.991804313 +0100
|
||||
@@ -1838,11 +1838,11 @@ can_use_watchpoint_cond_accel (void)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/ppc-linux-nat.c 2013-08-02 16:42:29.570632902 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/ppc-linux-nat.c 2013-08-02 16:42:34.097639108 +0200
|
||||
@@ -1853,11 +1853,11 @@ can_use_watchpoint_cond_accel (void)
|
||||
CONDITION_VALUE will hold the value which should be put in the
|
||||
DVC register. */
|
||||
static void
|
||||
@ -286,7 +286,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
|
||||
CORE_ADDR addr_end_data, addr_end_dvc;
|
||||
|
||||
/* The DVC register compares bytes within fixed-length windows which
|
||||
@@ -1929,7 +1929,7 @@ num_memory_accesses (struct value *v)
|
||||
@@ -1944,7 +1944,7 @@ num_memory_accesses (struct value *v)
|
||||
of the constant. */
|
||||
static int
|
||||
check_condition (CORE_ADDR watch_addr, struct expression *cond,
|
||||
@ -295,7 +295,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
|
||||
{
|
||||
int pc = 1, num_accesses_left, num_accesses_right;
|
||||
struct value *left_val, *right_val, *left_chain, *right_chain;
|
||||
@@ -1996,7 +1996,7 @@ check_condition (CORE_ADDR watch_addr, s
|
||||
@@ -2011,7 +2011,7 @@ check_condition (CORE_ADDR watch_addr, s
|
||||
the condition expression, thus only triggering the watchpoint when it is
|
||||
true. */
|
||||
static int
|
||||
@ -304,7 +304,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
|
||||
struct expression *cond)
|
||||
{
|
||||
CORE_ADDR data_value;
|
||||
@@ -2013,7 +2013,7 @@ ppc_linux_can_accel_watchpoint_condition
|
||||
@@ -2028,7 +2028,7 @@ ppc_linux_can_accel_watchpoint_condition
|
||||
|
||||
static void
|
||||
create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr,
|
||||
@ -313,7 +313,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
|
||||
int insert)
|
||||
{
|
||||
if (len == 1
|
||||
@@ -2058,7 +2058,7 @@ create_watchpoint_request (struct ppc_hw
|
||||
@@ -2073,7 +2073,7 @@ create_watchpoint_request (struct ppc_hw
|
||||
}
|
||||
|
||||
static int
|
||||
@ -322,7 +322,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
|
||||
struct expression *cond)
|
||||
{
|
||||
struct lwp_info *lp;
|
||||
@@ -2126,7 +2126,7 @@ ppc_linux_insert_watchpoint (CORE_ADDR a
|
||||
@@ -2141,7 +2141,7 @@ ppc_linux_insert_watchpoint (CORE_ADDR a
|
||||
}
|
||||
|
||||
static int
|
||||
@ -331,7 +331,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
|
||||
struct expression *cond)
|
||||
{
|
||||
struct lwp_info *lp;
|
||||
@@ -2266,7 +2266,7 @@ ppc_linux_stopped_by_watchpoint (void)
|
||||
@@ -2292,7 +2292,7 @@ ppc_linux_stopped_by_watchpoint (void)
|
||||
static int
|
||||
ppc_linux_watchpoint_addr_within_range (struct target_ops *target,
|
||||
CORE_ADDR addr,
|
||||
@ -340,10 +340,10 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
|
||||
{
|
||||
int mask;
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/procfs.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/procfs.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/procfs.c 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/procfs.c 2013-02-15 22:42:45.992804315 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/procfs.c 2013-08-02 16:42:29.572632904 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/procfs.c 2013-08-02 16:42:34.098639109 +0200
|
||||
@@ -2433,7 +2433,7 @@ procfs_address_to_host_pointer (CORE_ADD
|
||||
#endif
|
||||
|
||||
@ -380,11 +380,11 @@ Index: gdb-7.5.50.20130215/gdb/procfs.c
|
||||
struct expression *cond)
|
||||
{
|
||||
return procfs_set_watchpoint (inferior_ptid, addr, 0, 0, 0);
|
||||
Index: gdb-7.5.50.20130215/gdb/remote-m32r-sdi.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/remote-m32r-sdi.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/remote-m32r-sdi.c 2013-01-01 07:32:50.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/remote-m32r-sdi.c 2013-02-15 22:42:45.993804317 +0100
|
||||
@@ -1417,14 +1417,15 @@ m32r_can_use_hw_watchpoint (int type, in
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/remote-m32r-sdi.c 2013-08-02 16:42:29.573632906 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/remote-m32r-sdi.c 2013-08-02 16:42:34.099639111 +0200
|
||||
@@ -1416,14 +1416,15 @@ m32r_can_use_hw_watchpoint (int type, in
|
||||
watchpoint. */
|
||||
|
||||
static int
|
||||
@ -403,7 +403,7 @@ Index: gdb-7.5.50.20130215/gdb/remote-m32r-sdi.c
|
||||
|
||||
for (i = 0; i < MAX_ACCESS_BREAKS; i++)
|
||||
{
|
||||
@@ -1442,14 +1443,15 @@ m32r_insert_watchpoint (CORE_ADDR addr,
|
||||
@@ -1441,14 +1442,15 @@ m32r_insert_watchpoint (CORE_ADDR addr,
|
||||
}
|
||||
|
||||
static int
|
||||
@ -422,11 +422,11 @@ Index: gdb-7.5.50.20130215/gdb/remote-m32r-sdi.c
|
||||
|
||||
for (i = 0; i < MAX_ACCESS_BREAKS; i++)
|
||||
{
|
||||
Index: gdb-7.5.50.20130215/gdb/remote-mips.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/remote-mips.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/remote-mips.c 2013-01-01 07:32:50.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/remote-mips.c 2013-02-15 22:42:45.994804319 +0100
|
||||
@@ -2419,7 +2419,7 @@ calculate_mask (CORE_ADDR addr, int len)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/remote-mips.c 2013-08-02 16:42:29.574632907 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/remote-mips.c 2013-08-02 16:42:34.100639112 +0200
|
||||
@@ -2426,7 +2426,7 @@ calculate_mask (CORE_ADDR addr, int len)
|
||||
watchpoint. */
|
||||
|
||||
static int
|
||||
@ -435,7 +435,7 @@ Index: gdb-7.5.50.20130215/gdb/remote-mips.c
|
||||
struct expression *cond)
|
||||
{
|
||||
if (mips_set_breakpoint (addr, len, type))
|
||||
@@ -2431,7 +2431,7 @@ mips_insert_watchpoint (CORE_ADDR addr,
|
||||
@@ -2438,7 +2438,7 @@ mips_insert_watchpoint (CORE_ADDR addr,
|
||||
/* Remove a watchpoint. */
|
||||
|
||||
static int
|
||||
@ -444,11 +444,11 @@ Index: gdb-7.5.50.20130215/gdb/remote-mips.c
|
||||
struct expression *cond)
|
||||
{
|
||||
if (mips_clear_breakpoint (addr, len, type))
|
||||
Index: gdb-7.5.50.20130215/gdb/remote.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/remote.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/remote.c 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/remote.c 2013-02-15 22:42:45.996804323 +0100
|
||||
@@ -8155,7 +8155,7 @@ watchpoint_to_Z_packet (int type)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/remote.c 2013-08-02 16:42:29.577632911 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/remote.c 2013-08-02 16:42:34.103639116 +0200
|
||||
@@ -8277,7 +8277,7 @@ watchpoint_to_Z_packet (int type)
|
||||
}
|
||||
|
||||
static int
|
||||
@ -457,7 +457,7 @@ Index: gdb-7.5.50.20130215/gdb/remote.c
|
||||
struct expression *cond)
|
||||
{
|
||||
struct remote_state *rs = get_remote_state ();
|
||||
@@ -8170,7 +8170,7 @@ remote_insert_watchpoint (CORE_ADDR addr
|
||||
@@ -8297,7 +8297,7 @@ remote_insert_watchpoint (CORE_ADDR addr
|
||||
p = strchr (rs->buf, '\0');
|
||||
addr = remote_address_masked (addr);
|
||||
p += hexnumstr (p, (ULONGEST) addr);
|
||||
@ -466,7 +466,7 @@ Index: gdb-7.5.50.20130215/gdb/remote.c
|
||||
|
||||
putpkt (rs->buf);
|
||||
getpkt (&rs->buf, &rs->buf_size, 0);
|
||||
@@ -8190,7 +8190,7 @@ remote_insert_watchpoint (CORE_ADDR addr
|
||||
@@ -8317,7 +8317,7 @@ remote_insert_watchpoint (CORE_ADDR addr
|
||||
|
||||
static int
|
||||
remote_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr,
|
||||
@ -475,7 +475,7 @@ Index: gdb-7.5.50.20130215/gdb/remote.c
|
||||
{
|
||||
CORE_ADDR diff = remote_address_masked (addr - start);
|
||||
|
||||
@@ -8199,7 +8199,7 @@ remote_watchpoint_addr_within_range (str
|
||||
@@ -8326,7 +8326,7 @@ remote_watchpoint_addr_within_range (str
|
||||
|
||||
|
||||
static int
|
||||
@ -484,7 +484,7 @@ Index: gdb-7.5.50.20130215/gdb/remote.c
|
||||
struct expression *cond)
|
||||
{
|
||||
struct remote_state *rs = get_remote_state ();
|
||||
@@ -8214,7 +8214,7 @@ remote_remove_watchpoint (CORE_ADDR addr
|
||||
@@ -8346,7 +8346,7 @@ remote_remove_watchpoint (CORE_ADDR addr
|
||||
p = strchr (rs->buf, '\0');
|
||||
addr = remote_address_masked (addr);
|
||||
p += hexnumstr (p, (ULONGEST) addr);
|
||||
@ -493,10 +493,10 @@ Index: gdb-7.5.50.20130215/gdb/remote.c
|
||||
putpkt (rs->buf);
|
||||
getpkt (&rs->buf, &rs->buf_size, 0);
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/s390-nat.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/s390-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/s390-nat.c 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/s390-nat.c 2013-02-15 22:42:45.997804325 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/s390-nat.c 2013-08-02 16:42:29.578632913 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/s390-nat.c 2013-08-02 16:42:34.103639116 +0200
|
||||
@@ -516,7 +516,7 @@ s390_fix_watch_points (struct lwp_info *
|
||||
}
|
||||
|
||||
@ -515,21 +515,20 @@ Index: gdb-7.5.50.20130215/gdb/s390-nat.c
|
||||
struct expression *cond)
|
||||
{
|
||||
struct lwp_info *lp;
|
||||
Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/target.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/target.c 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/target.c 2013-02-15 22:42:45.997804325 +0100
|
||||
@@ -49,7 +49,8 @@ static void target_info (char *, int);
|
||||
static void default_terminal_info (char *, int);
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/target.c 2013-08-02 16:42:29.580632915 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/target.c 2013-08-02 16:42:52.160663787 +0200
|
||||
@@ -49,7 +49,7 @@ static void target_info (char *, int);
|
||||
static void default_terminal_info (const char *, int);
|
||||
|
||||
static int default_watchpoint_addr_within_range (struct target_ops *,
|
||||
- CORE_ADDR, CORE_ADDR, int);
|
||||
+ CORE_ADDR, CORE_ADDR,
|
||||
+ LONGEST);
|
||||
+ CORE_ADDR, CORE_ADDR, LONGEST);
|
||||
|
||||
static int default_region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST);
|
||||
|
||||
@@ -114,10 +115,10 @@ static int debug_to_insert_hw_breakpoint
|
||||
@@ -114,10 +114,10 @@ static int debug_to_insert_hw_breakpoint
|
||||
static int debug_to_remove_hw_breakpoint (struct gdbarch *,
|
||||
struct bp_target_info *);
|
||||
|
||||
@ -542,7 +541,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
struct expression *);
|
||||
|
||||
static int debug_to_stopped_by_watchpoint (void);
|
||||
@@ -125,11 +126,12 @@ static int debug_to_stopped_by_watchpoin
|
||||
@@ -125,11 +125,12 @@ static int debug_to_stopped_by_watchpoin
|
||||
static int debug_to_stopped_data_address (struct target_ops *, CORE_ADDR *);
|
||||
|
||||
static int debug_to_watchpoint_addr_within_range (struct target_ops *,
|
||||
@ -557,7 +556,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
struct expression *);
|
||||
|
||||
static void debug_to_terminal_init (void);
|
||||
@@ -751,10 +753,10 @@ update_current_target (void)
|
||||
@@ -790,10 +791,10 @@ update_current_target (void)
|
||||
(int (*) (struct gdbarch *, struct bp_target_info *))
|
||||
return_minus_one);
|
||||
de_fault (to_insert_watchpoint,
|
||||
@ -570,7 +569,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
return_minus_one);
|
||||
de_fault (to_stopped_by_watchpoint,
|
||||
(int (*) (void))
|
||||
@@ -767,7 +769,7 @@ update_current_target (void)
|
||||
@@ -806,7 +807,7 @@ update_current_target (void)
|
||||
de_fault (to_region_ok_for_hw_watchpoint,
|
||||
default_region_ok_for_hw_watchpoint);
|
||||
de_fault (to_can_accel_watchpoint_condition,
|
||||
@ -579,7 +578,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
return_zero);
|
||||
de_fault (to_terminal_init,
|
||||
(void (*) (void))
|
||||
@@ -3558,7 +3560,7 @@ default_region_ok_for_hw_watchpoint (COR
|
||||
@@ -3594,7 +3595,7 @@ default_region_ok_for_hw_watchpoint (COR
|
||||
static int
|
||||
default_watchpoint_addr_within_range (struct target_ops *target,
|
||||
CORE_ADDR addr,
|
||||
@ -588,7 +587,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
{
|
||||
return addr >= start && addr < start + length;
|
||||
}
|
||||
@@ -4265,7 +4267,7 @@ debug_to_region_ok_for_hw_watchpoint (CO
|
||||
@@ -4555,7 +4556,7 @@ debug_to_region_ok_for_hw_watchpoint (CO
|
||||
}
|
||||
|
||||
static int
|
||||
@ -597,7 +596,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
struct expression *cond)
|
||||
{
|
||||
int retval;
|
||||
@@ -4275,8 +4277,8 @@ debug_to_can_accel_watchpoint_condition
|
||||
@@ -4565,8 +4566,8 @@ debug_to_can_accel_watchpoint_condition
|
||||
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
"target_can_accel_watchpoint_condition "
|
||||
@ -608,7 +607,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
host_address_to_string (cond), (unsigned long) retval);
|
||||
return retval;
|
||||
}
|
||||
@@ -4311,7 +4313,7 @@ debug_to_stopped_data_address (struct ta
|
||||
@@ -4601,7 +4602,7 @@ debug_to_stopped_data_address (struct ta
|
||||
static int
|
||||
debug_to_watchpoint_addr_within_range (struct target_ops *target,
|
||||
CORE_ADDR addr,
|
||||
@ -617,7 +616,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
{
|
||||
int retval;
|
||||
|
||||
@@ -4319,9 +4321,9 @@ debug_to_watchpoint_addr_within_range (s
|
||||
@@ -4609,9 +4610,9 @@ debug_to_watchpoint_addr_within_range (s
|
||||
start, length);
|
||||
|
||||
fprintf_filtered (gdb_stdlog,
|
||||
@ -629,7 +628,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -4356,7 +4358,7 @@ debug_to_remove_hw_breakpoint (struct gd
|
||||
@@ -4646,7 +4647,7 @@ debug_to_remove_hw_breakpoint (struct gd
|
||||
}
|
||||
|
||||
static int
|
||||
@ -638,7 +637,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
struct expression *cond)
|
||||
{
|
||||
int retval;
|
||||
@@ -4364,14 +4366,14 @@ debug_to_insert_watchpoint (CORE_ADDR ad
|
||||
@@ -4654,14 +4655,14 @@ debug_to_insert_watchpoint (CORE_ADDR ad
|
||||
retval = debug_target.to_insert_watchpoint (addr, len, type, cond);
|
||||
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
@ -656,7 +655,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
struct expression *cond)
|
||||
{
|
||||
int retval;
|
||||
@@ -4379,8 +4381,8 @@ debug_to_remove_watchpoint (CORE_ADDR ad
|
||||
@@ -4669,8 +4670,8 @@ debug_to_remove_watchpoint (CORE_ADDR ad
|
||||
retval = debug_target.to_remove_watchpoint (addr, len, type, cond);
|
||||
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
@ -667,11 +666,11 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
host_address_to_string (cond), (unsigned long) retval);
|
||||
return retval;
|
||||
}
|
||||
Index: gdb-7.5.50.20130215/gdb/target.h
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/target.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/target.h 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/target.h 2013-02-15 22:42:45.998804328 +0100
|
||||
@@ -466,8 +466,8 @@ struct target_ops
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/target.h 2013-08-02 16:42:29.580632915 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/target.h 2013-08-02 16:42:34.105639119 +0200
|
||||
@@ -373,8 +373,8 @@ struct target_ops
|
||||
|
||||
/* Documentation of what the two routines below are expected to do is
|
||||
provided with the corresponding target_* macros. */
|
||||
@ -682,7 +681,7 @@ Index: gdb-7.5.50.20130215/gdb/target.h
|
||||
|
||||
int (*to_insert_mask_watchpoint) (struct target_ops *,
|
||||
CORE_ADDR, CORE_ADDR, int);
|
||||
@@ -478,13 +478,13 @@ struct target_ops
|
||||
@@ -385,13 +385,13 @@ struct target_ops
|
||||
int to_have_continuable_watchpoint;
|
||||
int (*to_stopped_data_address) (struct target_ops *, CORE_ADDR *);
|
||||
int (*to_watchpoint_addr_within_range) (struct target_ops *,
|
||||
|
@ -137,10 +137,10 @@ Content-Type: text/x-patch
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Content-Disposition: attachment; filename=bitpos-tdep.patch
|
||||
|
||||
Index: gdb-7.5.50.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.5.50.20130310/gdb/alpha-tdep.c 2013-03-10 16:44:42.111599838 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/alpha-tdep.c 2013-08-02 16:43:01.128676094 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/alpha-tdep.c 2013-08-02 16:43:04.723681004 +0200
|
||||
@@ -299,18 +299,18 @@ alpha_push_dummy_call (struct gdbarch *g
|
||||
{
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
@ -184,10 +184,10 @@ Index: gdb-7.5.50.20130310/gdb/alpha-tdep.c
|
||||
memcpy (arg_reg_buffer + offset, contents, tlen);
|
||||
offset += 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.5.50.20130310/gdb/amd64-tdep.c 2013-03-10 16:44:42.112599838 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/amd64-tdep.c 2013-08-02 16:43:01.130676097 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/amd64-tdep.c 2013-08-02 16:43:04.724681006 +0200
|
||||
@@ -616,7 +616,7 @@ amd64_return_value (struct gdbarch *gdba
|
||||
{
|
||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||
@ -217,10 +217,10 @@ Index: gdb-7.5.50.20130310/gdb/amd64-tdep.c
|
||||
enum amd64_reg_class class[2];
|
||||
int needed_integer_regs = 0;
|
||||
int needed_sse_regs = 0;
|
||||
Index: gdb-7.5.50.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.5.50.20130310/gdb/amd64-windows-tdep.c 2013-03-10 16:44:42.112599838 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/amd64-windows-tdep.c 2013-08-02 16:43:01.135676104 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/amd64-windows-tdep.c 2013-08-02 16:43:04.724681006 +0200
|
||||
@@ -79,7 +79,7 @@ amd64_windows_return_value (struct gdbar
|
||||
struct type *type, struct regcache *regcache,
|
||||
gdb_byte *readbuf, const gdb_byte *writebuf)
|
||||
@ -230,11 +230,11 @@ Index: gdb-7.5.50.20130310/gdb/amd64-windows-tdep.c
|
||||
int regnum = -1;
|
||||
|
||||
/* See if our value is returned through a register. If it is, then
|
||||
Index: gdb-7.5.50.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.5.50.20130310/gdb/arm-tdep.c 2013-03-10 16:44:42.115599840 +0100
|
||||
@@ -3496,7 +3496,7 @@ arm_vfp_cprc_reg_char (enum arm_vfp_cprc
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/arm-tdep.c 2013-08-02 16:43:01.140676110 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/arm-tdep.c 2013-08-02 16:43:04.727681010 +0200
|
||||
@@ -3498,7 +3498,7 @@ arm_vfp_cprc_reg_char (enum arm_vfp_cprc
|
||||
array). Vectors and complex types are not currently supported,
|
||||
matching the generic AAPCS support. */
|
||||
|
||||
@ -243,7 +243,7 @@ Index: gdb-7.5.50.20130310/gdb/arm-tdep.c
|
||||
arm_vfp_cprc_sub_candidate (struct type *t,
|
||||
enum arm_vfp_cprc_base_type *base_type)
|
||||
{
|
||||
@@ -3527,7 +3527,7 @@ arm_vfp_cprc_sub_candidate (struct type
|
||||
@@ -3529,7 +3529,7 @@ arm_vfp_cprc_sub_candidate (struct type
|
||||
|
||||
case TYPE_CODE_ARRAY:
|
||||
{
|
||||
@ -252,7 +252,7 @@ Index: gdb-7.5.50.20130310/gdb/arm-tdep.c
|
||||
unsigned unitlen;
|
||||
count = arm_vfp_cprc_sub_candidate (TYPE_TARGET_TYPE (t), base_type);
|
||||
if (count == -1)
|
||||
@@ -3547,13 +3547,15 @@ arm_vfp_cprc_sub_candidate (struct type
|
||||
@@ -3549,13 +3549,15 @@ arm_vfp_cprc_sub_candidate (struct type
|
||||
|
||||
case TYPE_CODE_STRUCT:
|
||||
{
|
||||
@ -271,7 +271,7 @@ Index: gdb-7.5.50.20130310/gdb/arm-tdep.c
|
||||
if (sub_count == -1)
|
||||
return -1;
|
||||
count += sub_count;
|
||||
@@ -3573,13 +3575,15 @@ arm_vfp_cprc_sub_candidate (struct type
|
||||
@@ -3575,13 +3577,15 @@ arm_vfp_cprc_sub_candidate (struct type
|
||||
|
||||
case TYPE_CODE_UNION:
|
||||
{
|
||||
@ -290,7 +290,7 @@ Index: gdb-7.5.50.20130310/gdb/arm-tdep.c
|
||||
if (sub_count == -1)
|
||||
return -1;
|
||||
count = (count > sub_count ? count : sub_count);
|
||||
@@ -3615,7 +3619,7 @@ arm_vfp_call_candidate (struct type *t,
|
||||
@@ -3617,7 +3621,7 @@ arm_vfp_call_candidate (struct type *t,
|
||||
int *count)
|
||||
{
|
||||
enum arm_vfp_cprc_base_type b = VFP_CPRC_UNKNOWN;
|
||||
@ -299,7 +299,7 @@ Index: gdb-7.5.50.20130310/gdb/arm-tdep.c
|
||||
if (c <= 0 || c > 4)
|
||||
return 0;
|
||||
*base_type = b;
|
||||
@@ -3696,7 +3700,7 @@ arm_push_dummy_call (struct gdbarch *gdb
|
||||
@@ -3698,7 +3702,7 @@ arm_push_dummy_call (struct gdbarch *gdb
|
||||
|
||||
for (argnum = 0; argnum < nargs; argnum++)
|
||||
{
|
||||
@ -308,10 +308,10 @@ Index: gdb-7.5.50.20130310/gdb/arm-tdep.c
|
||||
struct type *arg_type;
|
||||
struct type *target_type;
|
||||
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.5.50.20130310/gdb/avr-tdep.c 2013-03-10 16:44:42.116599840 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/avr-tdep.c 2013-08-02 16:43:01.142676113 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/avr-tdep.c 2013-08-02 16:43:04.728681011 +0200
|
||||
@@ -1170,13 +1170,14 @@ avr_dummy_id (struct gdbarch *gdbarch, s
|
||||
|
||||
struct stack_item
|
||||
@ -345,10 +345,10 @@ Index: gdb-7.5.50.20130310/gdb/avr-tdep.c
|
||||
|
||||
/* Calculate the potential last register needed. */
|
||||
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.5.50.20130310/gdb/bfin-tdep.c 2013-03-10 16:46:27.992669964 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/bfin-tdep.c 2013-08-02 16:43:01.142676113 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/bfin-tdep.c 2013-08-02 16:43:04.728681011 +0200
|
||||
@@ -506,7 +506,7 @@ bfin_push_dummy_call (struct gdbarch *gd
|
||||
gdb_byte buf[4];
|
||||
int i;
|
||||
@ -367,10 +367,10 @@ Index: gdb-7.5.50.20130310/gdb/bfin-tdep.c
|
||||
|
||||
sp -= 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.5.50.20130310/gdb/cris-tdep.c 2013-03-10 16:44:42.117599841 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/cris-tdep.c 2013-08-02 16:43:04.729681012 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/cris-tdep.c 2013-08-02 16:52:28.316491561 +0200
|
||||
@@ -670,13 +670,13 @@ static CORE_ADDR cris_unwind_sp (struct
|
||||
|
||||
struct stack_item
|
||||
@ -382,8 +382,8 @@ Index: gdb-7.5.50.20130310/gdb/cris-tdep.c
|
||||
};
|
||||
|
||||
static struct stack_item *
|
||||
-push_stack_item (struct stack_item *prev, void *contents, int len)
|
||||
+push_stack_item (struct stack_item *prev, void *contents, ssize_t len)
|
||||
-push_stack_item (struct stack_item *prev, const gdb_byte *contents, int len)
|
||||
+push_stack_item (struct stack_item *prev, const gdb_byte *contents, ssize_t len)
|
||||
{
|
||||
struct stack_item *si;
|
||||
si = xmalloc (sizeof (struct stack_item));
|
||||
@ -393,22 +393,22 @@ Index: gdb-7.5.50.20130310/gdb/cris-tdep.c
|
||||
{
|
||||
- int len;
|
||||
+ ssize_t len;
|
||||
char *val;
|
||||
const gdb_byte *val;
|
||||
- int reg_demand;
|
||||
- int i;
|
||||
+ ssize_t reg_demand;
|
||||
+ ssize_t i;
|
||||
|
||||
- len = TYPE_LENGTH (value_type (args[argnum]));
|
||||
val = (char *) value_contents (args[argnum]);
|
||||
val = value_contents (args[argnum]);
|
||||
+ len = TYPE_LENGTH (value_type (args[argnum]));
|
||||
|
||||
/* How may registers worth of storage do we need for this argument? */
|
||||
reg_demand = (len / 4) + (len % 4 != 0 ? 1 : 0);
|
||||
Index: gdb-7.5.50.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.5.50.20130310/gdb/h8300-tdep.c 2013-03-10 16:44:42.118599841 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/h8300-tdep.c 2013-08-02 16:43:01.144676116 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/h8300-tdep.c 2013-08-02 16:43:04.730681014 +0200
|
||||
@@ -640,7 +640,7 @@ h8300_push_dummy_call (struct gdbarch *g
|
||||
int struct_return, CORE_ADDR struct_addr)
|
||||
{
|
||||
@ -441,10 +441,10 @@ Index: gdb-7.5.50.20130310/gdb/h8300-tdep.c
|
||||
|
||||
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.5.50.20130310/gdb/hppa-tdep.c 2013-03-10 16:44:42.119599842 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/hppa-tdep.c 2013-08-02 16:43:01.145676117 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/hppa-tdep.c 2013-08-02 16:43:04.731681015 +0200
|
||||
@@ -961,7 +961,7 @@ hppa64_push_dummy_call (struct gdbarch *
|
||||
{
|
||||
struct value *arg = args[i];
|
||||
@ -463,10 +463,10 @@ Index: gdb-7.5.50.20130310/gdb/hppa-tdep.c
|
||||
int regnum, offset;
|
||||
|
||||
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.5.50.20130310/gdb/i386-darwin-tdep.c 2013-03-10 16:44:42.119599842 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/i386-darwin-tdep.c 2013-08-02 16:43:01.145676117 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/i386-darwin-tdep.c 2013-08-02 16:43:04.731681015 +0200
|
||||
@@ -166,7 +166,7 @@ i386_darwin_push_dummy_call (struct gdba
|
||||
|
||||
for (write_pass = 0; write_pass < 2; write_pass++)
|
||||
@ -476,10 +476,10 @@ Index: gdb-7.5.50.20130310/gdb/i386-darwin-tdep.c
|
||||
int num_m128 = 0;
|
||||
|
||||
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.5.50.20130310/gdb/i386-tdep.c 2013-03-10 16:44:42.120599842 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/i386-tdep.c 2013-08-02 16:43:01.147676120 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/i386-tdep.c 2013-08-02 16:43:04.733681018 +0200
|
||||
@@ -2407,7 +2407,7 @@ i386_push_dummy_call (struct gdbarch *gd
|
||||
gdb_byte buf[4];
|
||||
int i;
|
||||
@ -543,10 +543,10 @@ Index: gdb-7.5.50.20130310/gdb/i386-tdep.c
|
||||
|
||||
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.5.50.20130310/gdb/ia64-tdep.c 2013-03-10 16:44:42.121599843 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/ia64-tdep.c 2013-08-02 16:43:01.148676121 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/ia64-tdep.c 2013-08-02 16:43:04.734681019 +0200
|
||||
@@ -3974,8 +3974,10 @@ ia64_push_dummy_call (struct gdbarch *gd
|
||||
int argno;
|
||||
struct value *arg;
|
||||
@ -560,10 +560,10 @@ Index: gdb-7.5.50.20130310/gdb/ia64-tdep.c
|
||||
int floatreg;
|
||||
ULONGEST bsp;
|
||||
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.5.50.20130310/gdb/iq2000-tdep.c 2013-03-10 16:44:42.121599843 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/iq2000-tdep.c 2013-08-02 16:43:01.149676123 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/iq2000-tdep.c 2013-08-02 16:43:04.734681019 +0200
|
||||
@@ -654,8 +654,9 @@ iq2000_push_dummy_call (struct gdbarch *
|
||||
const bfd_byte *val;
|
||||
bfd_byte buf[4];
|
||||
@ -576,11 +576,11 @@ Index: gdb-7.5.50.20130310/gdb/iq2000-tdep.c
|
||||
/* Used to copy struct arguments into the stack. */
|
||||
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.5.50.20130310/gdb/m32r-tdep.c 2013-03-10 16:44:42.121599843 +0100
|
||||
@@ -695,7 +695,7 @@ m32r_push_dummy_call (struct gdbarch *gd
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/m32r-tdep.c 2013-08-02 16:43:01.149676123 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/m32r-tdep.c 2013-08-02 16:43:04.734681019 +0200
|
||||
@@ -689,7 +689,7 @@ m32r_push_dummy_call (struct gdbarch *gd
|
||||
CORE_ADDR regval;
|
||||
gdb_byte *val;
|
||||
gdb_byte valbuf[MAX_REGISTER_SIZE];
|
||||
@ -589,10 +589,10 @@ Index: gdb-7.5.50.20130310/gdb/m32r-tdep.c
|
||||
|
||||
/* First force sp to a 4-byte alignment. */
|
||||
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.5.50.20130310/gdb/m68k-tdep.c 2013-03-10 16:44:42.121599843 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/m68k-tdep.c 2013-08-02 16:43:01.149676123 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/m68k-tdep.c 2013-08-02 16:43:04.735681021 +0200
|
||||
@@ -384,7 +384,7 @@ m68k_reg_struct_return_p (struct gdbarch
|
||||
{
|
||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||
@ -615,10 +615,10 @@ Index: gdb-7.5.50.20130310/gdb/m68k-tdep.c
|
||||
|
||||
/* Non-scalars bigger than 4 bytes are left aligned, others are
|
||||
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.5.50.20130310/gdb/m88k-tdep.c 2013-03-10 16:44:42.121599843 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/m88k-tdep.c 2013-08-02 16:43:01.150676124 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/m88k-tdep.c 2013-08-02 16:43:04.735681021 +0200
|
||||
@@ -260,13 +260,13 @@ m88k_store_arguments (struct regcache *r
|
||||
{
|
||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||
@ -646,11 +646,11 @@ Index: gdb-7.5.50.20130310/gdb/m88k-tdep.c
|
||||
|
||||
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.5.50.20130310/gdb/mep-tdep.c 2013-03-10 16:44:42.122599843 +0100
|
||||
@@ -2279,7 +2279,7 @@ push_large_arguments (CORE_ADDR sp, int
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/mep-tdep.c 2013-08-02 16:43:01.150676124 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/mep-tdep.c 2013-08-02 16:43:04.735681021 +0200
|
||||
@@ -2272,7 +2272,7 @@ push_large_arguments (CORE_ADDR sp, int
|
||||
|
||||
for (i = 0; i < argc; i++)
|
||||
{
|
||||
@ -659,11 +659,11 @@ Index: gdb-7.5.50.20130310/gdb/mep-tdep.c
|
||||
|
||||
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.5.50.20130310/gdb/mips-tdep.c 2013-03-10 16:44:42.123599844 +0100
|
||||
@@ -396,7 +396,7 @@ static void
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/mips-tdep.c 2013-08-02 16:43:01.153676128 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/mips-tdep.c 2013-08-02 16:43:04.737681023 +0200
|
||||
@@ -402,7 +402,7 @@ static void
|
||||
mips_xfer_register (struct gdbarch *gdbarch, struct regcache *regcache,
|
||||
int reg_num, int length,
|
||||
enum bfd_endian endian, gdb_byte *in,
|
||||
@ -672,7 +672,7 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
|
||||
{
|
||||
int reg_offset = 0;
|
||||
|
||||
@@ -419,8 +419,8 @@ mips_xfer_register (struct gdbarch *gdba
|
||||
@@ -425,8 +425,8 @@ mips_xfer_register (struct gdbarch *gdba
|
||||
}
|
||||
if (mips_debug)
|
||||
fprintf_unfiltered (gdb_stderr,
|
||||
@ -683,7 +683,7 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
|
||||
if (mips_debug && out != NULL)
|
||||
{
|
||||
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];
|
||||
struct value *arg = args[argnum];
|
||||
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
|
||||
mips16 pointers. */
|
||||
@@ -4637,7 +4637,7 @@ mips_eabi_return_value (struct gdbarch *
|
||||
@@ -4636,7 +4636,7 @@ mips_eabi_return_value (struct gdbarch *
|
||||
|
||||
static int
|
||||
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;
|
||||
|
||||
@@ -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++)
|
||||
{
|
||||
@ -718,7 +718,7 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
|
||||
struct type *field_type;
|
||||
|
||||
/* 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 float_argreg;
|
||||
int argnum;
|
||||
@ -727,7 +727,7 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
|
||||
int stack_offset = 0;
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
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);
|
||||
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)
|
||||
{
|
||||
/* 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))
|
||||
xfer = TYPE_LENGTH (type) - offset;
|
||||
if (mips_debug)
|
||||
@ -754,7 +754,7 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
|
||||
mips_xfer_register (gdbarch, regcache,
|
||||
gdbarch_num_regs (gdbarch) + regnum,
|
||||
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 float_argreg;
|
||||
int argnum;
|
||||
@ -763,7 +763,7 @@ Index: gdb-7.5.50.20130310/gdb/mips-tdep.c
|
||||
int stack_offset = 0;
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
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;
|
||||
struct value *arg = args[argnum];
|
||||
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);
|
||||
|
||||
@@ -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 float_argreg;
|
||||
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);
|
||||
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];
|
||||
struct value *arg = args[argnum];
|
||||
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);
|
||||
|
||||
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.5.50.20130310/gdb/mn10300-tdep.c 2013-03-10 16:44:42.123599844 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/mn10300-tdep.c 2013-08-02 16:43:04.737681023 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/mn10300-tdep.c 2013-08-02 16:50:34.212320698 +0200
|
||||
@@ -1228,7 +1228,7 @@ mn10300_push_dummy_call (struct gdbarch
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
const int push_size = register_size (gdbarch, E_PC_REGNUM);
|
||||
int regs_used;
|
||||
- int len, arg_len;
|
||||
+ LONGEST len, arg_len;
|
||||
+ LONGEST len, arg_len;
|
||||
int stack_offset = 0;
|
||||
int argnum;
|
||||
char *val, valbuf[MAX_REGISTER_SIZE];
|
||||
Index: gdb-7.5.50.20130310/gdb/mt-tdep.c
|
||||
const gdb_byte *val;
|
||||
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.5.50.20130310/gdb/mt-tdep.c 2013-03-10 16:44:42.124599844 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/mt-tdep.c 2013-08-02 16:43:01.154676130 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/mt-tdep.c 2013-08-02 16:43:04.737681023 +0200
|
||||
@@ -783,9 +783,9 @@ mt_push_dummy_call (struct gdbarch *gdba
|
||||
gdb_byte buf[MT_MAX_STRUCT_SIZE];
|
||||
int argreg = MT_1ST_ARGREG;
|
||||
@ -837,10 +837,10 @@ Index: gdb-7.5.50.20130310/gdb/mt-tdep.c
|
||||
int i, j;
|
||||
|
||||
/* First handle however many args we can fit into MT_1ST_ARGREG thru
|
||||
Index: gdb-7.5.50.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.5.50.20130310/gdb/ppc-sysv-tdep.c 2013-03-10 16:44:42.124599844 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/ppc-sysv-tdep.c 2013-08-02 16:43:01.155676131 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/ppc-sysv-tdep.c 2013-08-02 16:43:04.738681025 +0200
|
||||
@@ -68,7 +68,7 @@ ppc_sysv_abi_push_dummy_call (struct gdb
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int opencl_abi = ppc_sysv_use_opencl_abi (value_type (function));
|
||||
@ -871,7 +871,7 @@ Index: gdb-7.5.50.20130310/gdb/ppc-sysv-tdep.c
|
||||
const bfd_byte *val = value_contents (arg);
|
||||
|
||||
if (TYPE_CODE (type) == TYPE_CODE_FLT && len <= 8
|
||||
@@ -1556,14 +1556,14 @@ ppc64_sysv_abi_push_dummy_call (struct g
|
||||
@@ -1613,14 +1613,14 @@ ppc64_sysv_abi_push_dummy_call (struct g
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -888,7 +888,7 @@ Index: gdb-7.5.50.20130310/gdb/ppc-sysv-tdep.c
|
||||
if (len > tdep->wordsize)
|
||||
len = tdep->wordsize;
|
||||
memset (regval, 0, sizeof regval);
|
||||
@@ -1591,7 +1591,7 @@ ppc64_sysv_abi_push_dummy_call (struct g
|
||||
@@ -1648,7 +1648,7 @@ ppc64_sysv_abi_push_dummy_call (struct g
|
||||
register. Work around this by always writing the
|
||||
value to memory. Fortunately, doing this
|
||||
simplifies the code. */
|
||||
@ -897,11 +897,11 @@ Index: gdb-7.5.50.20130310/gdb/ppc-sysv-tdep.c
|
||||
if (len < tdep->wordsize)
|
||||
write_memory (gparam + tdep->wordsize - len, val, len);
|
||||
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.5.50.20130310/gdb/rl78-tdep.c 2013-03-10 16:44:42.124599844 +0100
|
||||
@@ -1019,8 +1019,8 @@ rl78_push_dummy_call (struct gdbarch *gd
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/rl78-tdep.c 2013-08-02 16:43:01.155676131 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/rl78-tdep.c 2013-08-02 16:43:04.738681025 +0200
|
||||
@@ -1030,8 +1030,8 @@ rl78_push_dummy_call (struct gdbarch *gd
|
||||
for (i = nargs - 1; i >= 0; i--)
|
||||
{
|
||||
struct type *value_type = value_enclosing_type (args[i]);
|
||||
@ -912,11 +912,11 @@ Index: gdb-7.5.50.20130310/gdb/rl78-tdep.c
|
||||
|
||||
sp -= container_len;
|
||||
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.5.50.20130310/gdb/rs6000-aix-tdep.c 2013-03-10 16:44:42.125599845 +0100
|
||||
@@ -198,9 +198,9 @@ rs6000_push_dummy_call (struct gdbarch *
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/rs6000-aix-tdep.c 2013-08-02 16:43:01.155676131 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/rs6000-aix-tdep.c 2013-08-02 16:43:04.738681025 +0200
|
||||
@@ -196,9 +196,9 @@ rs6000_push_dummy_call (struct gdbarch *
|
||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int ii;
|
||||
@ -928,7 +928,7 @@ Index: gdb-7.5.50.20130310/gdb/rs6000-aix-tdep.c
|
||||
gdb_byte tmp_buffer[50];
|
||||
int f_argno = 0; /* current floating point argno */
|
||||
int wordsize = gdbarch_tdep (gdbarch)->wordsize;
|
||||
@@ -328,7 +328,7 @@ ran_out_of_registers_for_arguments:
|
||||
@@ -331,7 +331,7 @@ ran_out_of_registers_for_arguments:
|
||||
|
||||
if ((argno < nargs) || argbytes)
|
||||
{
|
||||
@ -937,11 +937,11 @@ Index: gdb-7.5.50.20130310/gdb/rs6000-aix-tdep.c
|
||||
|
||||
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.5.50.20130310/gdb/s390-tdep.c 2013-03-10 16:44:42.125599845 +0100
|
||||
@@ -2482,7 +2482,7 @@ is_float_like (struct type *type)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/s390-tdep.c 2013-08-02 16:43:01.156676132 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/s390-tdep.c 2013-08-02 16:43:04.739681026 +0200
|
||||
@@ -2483,7 +2483,7 @@ is_float_like (struct type *type)
|
||||
|
||||
|
||||
static int
|
||||
@ -950,7 +950,7 @@ Index: gdb-7.5.50.20130310/gdb/s390-tdep.c
|
||||
{
|
||||
return ((n & (n - 1)) == 0);
|
||||
}
|
||||
@@ -2668,7 +2668,7 @@ s390_push_dummy_call (struct gdbarch *gd
|
||||
@@ -2669,7 +2669,7 @@ s390_push_dummy_call (struct gdbarch *gd
|
||||
{
|
||||
struct value *arg = args[i];
|
||||
struct type *type = check_typedef (value_type (arg));
|
||||
@ -959,10 +959,10 @@ Index: gdb-7.5.50.20130310/gdb/s390-tdep.c
|
||||
|
||||
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.5.50.20130310/gdb/score-tdep.c 2013-03-10 16:44:42.125599845 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/score-tdep.c 2013-08-02 16:43:01.157676134 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/score-tdep.c 2013-08-02 16:43:04.739681026 +0200
|
||||
@@ -515,7 +515,7 @@ score_push_dummy_call (struct gdbarch *g
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int argnum;
|
||||
@ -972,10 +972,10 @@ Index: gdb-7.5.50.20130310/gdb/score-tdep.c
|
||||
CORE_ADDR stack_offset = 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.5.50.20130310/gdb/sh-tdep.c 2013-03-10 16:44:42.126599845 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/sh-tdep.c 2013-08-02 16:43:01.157676134 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/sh-tdep.c 2013-08-02 16:51:29.604404553 +0200
|
||||
@@ -807,7 +807,7 @@ sh_skip_prologue (struct gdbarch *gdbarc
|
||||
static int
|
||||
sh_use_struct_convention (int renesas_abi, struct type *type)
|
||||
@ -988,36 +988,36 @@ Index: gdb-7.5.50.20130310/gdb/sh-tdep.c
|
||||
@@ -909,7 +909,7 @@ sh_frame_align (struct gdbarch *ignore,
|
||||
|
||||
/* Helper function to justify value in register according to endianess. */
|
||||
static char *
|
||||
static const gdb_byte *
|
||||
-sh_justify_value_in_reg (struct gdbarch *gdbarch, struct value *val, int len)
|
||||
+sh_justify_value_in_reg (struct gdbarch *gdbarch, struct value *val, LONGEST len)
|
||||
{
|
||||
static char valbuf[4];
|
||||
static gdb_byte valbuf[4];
|
||||
|
||||
@@ -1069,7 +1069,8 @@ sh_push_dummy_call_fpu (struct gdbarch *
|
||||
struct type *type;
|
||||
CORE_ADDR regval;
|
||||
char *val;
|
||||
const gdb_byte *val;
|
||||
- int len, reg_size = 0;
|
||||
+ LONGEST len;
|
||||
+ ssize_t reg_size = 0;
|
||||
+ int reg_size = 0;
|
||||
int pass_on_stack = 0;
|
||||
int treat_as_flt;
|
||||
int last_reg_arg = INT_MAX;
|
||||
@@ -1210,7 +1211,8 @@ sh_push_dummy_call_nofpu (struct gdbarch
|
||||
struct type *type;
|
||||
CORE_ADDR regval;
|
||||
char *val;
|
||||
const gdb_byte *val;
|
||||
- int len, reg_size = 0;
|
||||
+ LONGEST len;
|
||||
+ ssize_t reg_size = 0;
|
||||
+ int reg_size = 0;
|
||||
int pass_on_stack = 0;
|
||||
int last_reg_arg = INT_MAX;
|
||||
|
||||
Index: gdb-7.5.50.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.5.50.20130310/gdb/sh64-tdep.c 2013-03-10 16:44:42.126599845 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/sh64-tdep.c 2013-08-02 16:43:01.158676135 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/sh64-tdep.c 2013-08-02 16:50:49.740344125 +0200
|
||||
@@ -1058,7 +1058,7 @@ sh64_push_dummy_call (struct gdbarch *gd
|
||||
CORE_ADDR struct_addr)
|
||||
{
|
||||
@ -1029,17 +1029,17 @@ Index: gdb-7.5.50.20130310/gdb/sh64-tdep.c
|
||||
int double_argreg;
|
||||
@@ -1069,7 +1069,7 @@ sh64_push_dummy_call (struct gdbarch *gd
|
||||
CORE_ADDR regval;
|
||||
char *val;
|
||||
char valbuf[8];
|
||||
const gdb_byte *val;
|
||||
gdb_byte valbuf[8];
|
||||
- int len;
|
||||
+ LONGEST len;
|
||||
int argreg_size;
|
||||
int fp_args[12];
|
||||
|
||||
Index: gdb-7.5.50.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.5.50.20130310/gdb/sparc-tdep.c 2013-03-10 16:44:42.127599846 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/sparc-tdep.c 2013-08-02 16:43:01.159676136 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/sparc-tdep.c 2013-08-02 16:43:04.740681027 +0200
|
||||
@@ -471,7 +471,7 @@ sparc32_store_arguments (struct regcache
|
||||
for (i = 0; i < nargs; i++)
|
||||
{
|
||||
@ -1049,10 +1049,10 @@ Index: gdb-7.5.50.20130310/gdb/sparc-tdep.c
|
||||
|
||||
if (sparc_structure_or_union_p (type)
|
||||
|| (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.5.50.20130310/gdb/sparc64-tdep.c 2013-03-10 16:44:42.127599846 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/sparc64-tdep.c 2013-08-02 16:43:01.159676136 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/sparc64-tdep.c 2013-08-02 16:43:04.741681029 +0200
|
||||
@@ -639,7 +639,8 @@ sparc64_16_byte_align_p (struct type *ty
|
||||
|
||||
static void
|
||||
@ -1108,11 +1108,11 @@ Index: gdb-7.5.50.20130310/gdb/sparc64-tdep.c
|
||||
int regnum = -1;
|
||||
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.5.50.20130310/gdb/spu-tdep.c 2013-03-10 16:44:42.127599846 +0100
|
||||
@@ -1373,7 +1373,7 @@ spu_push_dummy_call (struct gdbarch *gdb
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/spu-tdep.c 2013-08-02 16:43:01.160676138 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/spu-tdep.c 2013-08-02 16:43:04.741681029 +0200
|
||||
@@ -1376,7 +1376,7 @@ spu_push_dummy_call (struct gdbarch *gdb
|
||||
struct value *arg = args[i];
|
||||
struct type *type = check_typedef (value_type (arg));
|
||||
const gdb_byte *contents = value_contents (arg);
|
||||
@ -1121,7 +1121,7 @@ Index: gdb-7.5.50.20130310/gdb/spu-tdep.c
|
||||
|
||||
/* If the argument doesn't wholly fit into registers, it and
|
||||
all subsequent arguments go to the stack. */
|
||||
@@ -1405,7 +1405,7 @@ spu_push_dummy_call (struct gdbarch *gdb
|
||||
@@ -1408,7 +1408,7 @@ spu_push_dummy_call (struct gdbarch *gdb
|
||||
{
|
||||
struct value *arg = args[i];
|
||||
struct type *type = check_typedef (value_type (arg));
|
||||
@ -1130,10 +1130,10 @@ Index: gdb-7.5.50.20130310/gdb/spu-tdep.c
|
||||
int preferred_slot;
|
||||
|
||||
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.5.50.20130310/gdb/tic6x-tdep.c 2013-03-10 16:44:42.128599846 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/tic6x-tdep.c 2013-08-02 16:43:01.160676138 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/tic6x-tdep.c 2013-08-02 16:43:04.742681030 +0200
|
||||
@@ -896,7 +896,7 @@ tic6x_push_dummy_call (struct gdbarch *g
|
||||
int argreg = 0;
|
||||
int argnum;
|
||||
@ -1171,10 +1171,10 @@ Index: gdb-7.5.50.20130310/gdb/tic6x-tdep.c
|
||||
|
||||
addr = sp + stack_offset;
|
||||
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.5.50.20130310/gdb/tilegx-tdep.c 2013-03-10 16:45:31.857629100 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/tilegx-tdep.c 2013-08-02 16:43:01.161676139 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/tilegx-tdep.c 2013-08-02 16:43:04.742681030 +0200
|
||||
@@ -291,7 +291,7 @@ tilegx_push_dummy_call (struct gdbarch *
|
||||
CORE_ADDR stack_dest = sp;
|
||||
int argreg = TILEGX_R0_REGNUM;
|
||||
@ -1184,11 +1184,11 @@ Index: gdb-7.5.50.20130310/gdb/tilegx-tdep.c
|
||||
static const gdb_byte four_zero_words[16] = { 0 };
|
||||
|
||||
/* If struct_return is 1, then the struct return address will
|
||||
Index: gdb-7.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.5.50.20130310/gdb/v850-tdep.c 2013-03-10 16:44:42.128599846 +0100
|
||||
@@ -817,7 +817,7 @@ v850_push_dummy_call (struct gdbarch *gd
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/v850-tdep.c 2013-08-02 16:43:01.161676139 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/v850-tdep.c 2013-08-02 16:52:55.219531101 +0200
|
||||
@@ -1021,7 +1021,7 @@ v850_push_dummy_call (struct gdbarch *gd
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int argreg;
|
||||
int argnum;
|
||||
@ -1196,8 +1196,8 @@ Index: gdb-7.5.50.20130310/gdb/v850-tdep.c
|
||||
+ LONGEST len = 0;
|
||||
int stack_offset;
|
||||
|
||||
/* The offset onto the stack at which we will start copying parameters
|
||||
@@ -842,7 +842,7 @@ v850_push_dummy_call (struct gdbarch *gd
|
||||
if (gdbarch_tdep (gdbarch)->abi == V850_ABI_RH850)
|
||||
@@ -1049,7 +1049,7 @@ v850_push_dummy_call (struct gdbarch *gd
|
||||
in four registers available. Loop thru args from first to last. */
|
||||
for (argnum = 0; argnum < nargs; argnum++)
|
||||
{
|
||||
@ -1206,10 +1206,10 @@ Index: gdb-7.5.50.20130310/gdb/v850-tdep.c
|
||||
gdb_byte *val;
|
||||
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.5.50.20130310/gdb/vax-tdep.c 2013-03-10 16:44:42.128599846 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/vax-tdep.c 2013-08-02 16:43:01.161676139 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/vax-tdep.c 2013-08-02 16:43:04.742681030 +0200
|
||||
@@ -115,7 +115,7 @@ vax_store_arguments (struct regcache *re
|
||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
@ -1228,10 +1228,10 @@ Index: gdb-7.5.50.20130310/gdb/vax-tdep.c
|
||||
|
||||
sp -= (len + 3) & ~3;
|
||||
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.5.50.20130310/gdb/xstormy16-tdep.c 2013-03-10 16:46:05.888653201 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/xstormy16-tdep.c 2013-08-02 16:43:01.162676141 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/xstormy16-tdep.c 2013-08-02 16:43:04.743681032 +0200
|
||||
@@ -235,8 +235,9 @@ xstormy16_push_dummy_call (struct gdbarc
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
CORE_ADDR stack_dest = sp;
|
||||
@ -1244,10 +1244,10 @@ Index: gdb-7.5.50.20130310/gdb/xstormy16-tdep.c
|
||||
const gdb_byte *val;
|
||||
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.5.50.20130310/gdb/xtensa-tdep.c 2013-03-10 16:44:42.129599847 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/xtensa-tdep.c 2013-08-02 16:43:01.163676142 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/xtensa-tdep.c 2013-08-02 16:43:04.743681032 +0200
|
||||
@@ -1653,8 +1653,7 @@ xtensa_store_return_value (struct type *
|
||||
|
||||
if (len > (callsize > 8 ? 8 : 16))
|
||||
|
@ -6,8 +6,10 @@ http://sourceware.org/ml/gdb-patches/2010-08/msg00085.html
|
||||
http://sourceware.org/ml/gdb-cvs/2010-08/msg00026.html
|
||||
2e5bcfdef1ec3883d48c3f87a4be5c0dff25e17e
|
||||
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.arch/x86_64-pid0-core.core.bz2.uu
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/x86_64-pid0-core.core.bz2.uu
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/x86_64-pid0-core.core.bz2.uu 2013-08-02 22:14:50.748990883 +0200
|
||||
@@ -0,0 +1,20 @@
|
||||
+begin 600 x86_64-pid0-core.core.bz2
|
||||
+M0EIH.3%!629362,CA>P!$/'_____^*#EZ-A!SP36P&_:G0#=14``04A&8,'U
|
||||
@ -29,8 +31,10 @@ http://sourceware.org/ml/gdb-cvs/2010-08/msg00026.html
|
||||
+4B.Z!/,0-IZ^W_Q=R13A0D",CA>P`
|
||||
+`
|
||||
+end
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.arch/x86_64-pid0-core.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/x86_64-pid0-core.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/x86_64-pid0-core.exp 2013-08-02 22:17:30.575209385 +0200
|
||||
@@ -0,0 +1,46 @@
|
||||
+# This testcase is part of GDB, the GNU debugger.
|
||||
+#
|
||||
@ -77,4 +81,4 @@ http://sourceware.org/ml/gdb-cvs/2010-08/msg00026.html
|
||||
+
|
||||
+# Former crash was:
|
||||
+# thread.c:884: internal-error: switch_to_thread: Assertion `inf != NULL' failed.
|
||||
+gdb_test "core-file ${corefile}" "Program terminated with signal 11, Segmentation fault\\.\r\n.*"
|
||||
+gdb_test "core-file ${corefile}" "Program terminated with signal (11|SIGSEGV), Segmentation fault\\.\r\n.*"
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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, _("\
|
@ -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
|
@ -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
|
1343
gdb-upstream.patch
1343
gdb-upstream.patch
File diff suppressed because it is too large
Load Diff
@ -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);
|
||||
|
83
gdb.spec
83
gdb.spec
@ -27,22 +27,23 @@
|
||||
Summary: A GNU source-level debugger for C, C++, Fortran, Go and other languages
|
||||
Name: %{?scl_prefix}gdb
|
||||
|
||||
#global snap 20130423
|
||||
# 6e5c95e6cf1e3c37bd3a822ca9e6721caab97a85
|
||||
%global snap 20130731
|
||||
# Freeze it when GDB gets branched
|
||||
%global snapsrc 20130312
|
||||
%global snapsrc 20130731
|
||||
# See timestamp of source gnulib installed into gdb/gnulib/ .
|
||||
%global snapgnulib 20121213
|
||||
Version: 7.6
|
||||
Version: 7.6.50.%{snap}
|
||||
|
||||
# The release always contains a leading reserved number, start it at 1.
|
||||
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
|
||||
Release: 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
|
||||
Group: Development/Debuggers
|
||||
# Do not provide URL for snapshots as the file lasts there only for 2 days.
|
||||
# ftp://sourceware.org/pub/gdb/releases/gdb-%{version}.tar.bz2
|
||||
Source: ftp://sourceware.org/pub/gdb/releases/gdb-%{version}.tar.bz2
|
||||
Source: gdb-%{version}-cvs.tar.bz2
|
||||
Buildroot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
||||
URL: http://gnu.org/software/gdb/
|
||||
|
||||
@ -51,7 +52,7 @@ Obsoletes: devtoolset-1.0-%{pkg_name}
|
||||
%endif
|
||||
|
||||
# For our convenience
|
||||
%global gdb_src %{pkg_name}-%{version}
|
||||
%global gdb_src %{pkg_name}-%{version}-cvs
|
||||
%global gdb_build build-%{_target_platform}
|
||||
|
||||
# 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.
|
||||
#Xdrop: Just backports.
|
||||
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
|
||||
#Patch232: gdb-upstream.patch
|
||||
|
||||
# Testcase for PPC Power6/DFP instructions disassembly (BZ 230000).
|
||||
#=fedoratest+ppc
|
||||
@ -504,20 +500,6 @@ Patch548: gdb-test-expr-cumulative-archer.patch
|
||||
#=push+work
|
||||
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.
|
||||
#=push
|
||||
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).
|
||||
#=push
|
||||
Patch653: gdb-attach-fail-reasons-5of5.patch
|
||||
#=fedora
|
||||
Patch657: gdb-attach-fail-reasons-5of5configure.patch
|
||||
|
||||
# Workaround crashes from stale frame_info pointer (BZ 804256).
|
||||
#=fedora
|
||||
@ -569,24 +549,6 @@ Patch818: gdb-rhbz795424-bitpos-lazyvalue.patch
|
||||
#=fedoratest
|
||||
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
|
||||
# RL_STATE_FEDORA_GDB would not be found for:
|
||||
# Patch642: gdb-readline62-ask-more-rh.patch
|
||||
@ -792,9 +754,7 @@ find -name "*.info*"|xargs rm -f
|
||||
%patch2 -p1
|
||||
|
||||
%patch349 -p1
|
||||
%patch232 -p1
|
||||
%patch828 -p1
|
||||
%patch829 -p1
|
||||
#patch232 -p1
|
||||
%patch1 -p1
|
||||
%patch3 -p1
|
||||
|
||||
@ -883,19 +843,9 @@ find -name "*.info*"|xargs rm -f
|
||||
%patch547 -p1
|
||||
%patch548 -p1
|
||||
%patch579 -p1
|
||||
%patch718 -p1
|
||||
%patch719 -p1
|
||||
%patch720 -p1
|
||||
%patch721 -p1
|
||||
%patch722 -p1
|
||||
%patch723 -p1
|
||||
%patch822 -p1
|
||||
%patch827 -p1
|
||||
%patch619 -p1
|
||||
%patch627 -p1
|
||||
%patch634 -p1
|
||||
%patch653 -p1
|
||||
%patch657 -p1
|
||||
%patch661 -p1
|
||||
%patch690 -p1
|
||||
%patch698 -p1
|
||||
@ -908,19 +858,7 @@ find -name "*.info*"|xargs rm -f
|
||||
%patch817 -p1
|
||||
%patch818 -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
|
||||
%if 0%{!?el5:1} || 0%{?scl:1}
|
||||
%patch393 -p1 -R
|
||||
@ -1422,6 +1360,9 @@ fi
|
||||
%endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch"
|
||||
|
||||
%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
|
||||
- Remove %%{gdb_docdir}, rebuild for unversioned docdirs (for BZ 986871).
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user