Rebase to FSF GDB 7.2.90.20110703 (which is a 7.3 pre-release).

Adjust the `print errno' patch due to the DW_AT_linkage_name following again.
This commit is contained in:
Jan Kratochvil 2011-07-03 17:22:23 +02:00
parent 847a670287
commit e6e9cf3987
6 changed files with 1539 additions and 1264 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
/libstdc++-v3-python-r155978.tar.bz2
/gdb-7.2.90.20110525.tar.bz2
/gdb-7.2.90.20110703.tar.bz2

View File

@ -32,51 +32,17 @@ 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
Index: gdb-7.2/gdb/printcmd.c
===================================================================
--- gdb-7.2.orig/gdb/printcmd.c 2011-03-29 10:55:32.000000000 +0200
+++ gdb-7.2/gdb/printcmd.c 2011-03-29 10:56:00.000000000 +0200
@@ -947,10 +947,10 @@ validate_format (struct format_data fmt,
static void
print_command_1 (char *exp, int inspect, int voidprint)
{
- struct expression *expr;
struct cleanup *old_chain = 0;
char format = 0;
- struct value *val;
+ /* False GCC warning due to the TRY_CATCH. */
+ struct value *val = NULL;
struct format_data fmt;
int cleanup = 0;
@@ -971,10 +971,25 @@ print_command_1 (char *exp, int inspect,
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -967,6 +967,8 @@ print_command_1 (char *exp, int inspect, int voidprint)
if (exp && *exp)
{
+ struct expression *expr;
+ volatile struct gdb_exception except;
+
+ if (strcmp (exp, "errno") == 0)
+ exp = "*((int *(*) (void)) __errno_location) ()";
expr = parse_expression (exp);
- old_chain = make_cleanup (free_current_contents, &expr);
+ old_chain = make_cleanup (xfree, expr);
old_chain = make_cleanup (free_current_contents, &expr);
cleanup = 1;
- val = evaluate_expression (expr);
+ TRY_CATCH (except, RETURN_MASK_ERROR)
+ {
+ val = evaluate_expression (expr);
+ }
+ if (except.reason < 0)
+ {
+ if (strcmp (exp, "errno") != 0)
+ throw_exception (except);
+
+ expr = parse_expression ("*((int *(*) (void)) __errno_location) ()");
+ make_cleanup (xfree, expr);
+ val = evaluate_expression (expr);
+ }
}
else
val = access_value_history (0);
Index: gdb-7.2/gdb/testsuite/gdb.dwarf2/dw2-errno.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -23,11 +23,11 @@ Name: gdb%{?_with_debug:-debug}
# Set version to contents of gdb/version.in.
# NOTE: the FSF gdb versions are numbered N.M for official releases, like 6.3
# and, since January 2005, X.Y.Z.date for daily snapshots, like 6.3.50.20050112 # (daily snapshot from mailine), or 6.3.0.20040112 (head of the release branch).
Version: 7.2.90.20110525
Version: 7.2.90.20110703
# 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: 39%{?_with_upstream:.upstream}%{?dist}
Release: 40%{?_with_upstream:.upstream}%{?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
@ -1265,6 +1265,10 @@ fi
%{_infodir}/gdb.info*
%changelog
* Sun Jul 3 2011 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.2.90.20110703-40.fc15
- Rebase to FSF GDB 7.2.90.20110703 (which is a 7.3 pre-release).
- Adjust the `print errno' patch due to the DW_AT_linkage_name following again.
* Fri Jun 24 2011 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.2.90.20110525-39.fc15
- Fix install-info for the gdb-doc subpackage (BZ 715228).

View File

@ -1,2 +1,2 @@
04e5c4b1b9e633422cc48990fe61958d libstdc++-v3-python-r155978.tar.bz2
b6128eb0341df56d66f0a3558ebc9899 gdb-7.2.90.20110525.tar.bz2
be6522ade1ac78a16b10ea1612158d0a gdb-7.2.90.20110703.tar.bz2