rpms/gdb/devel gdb-archer.patch,1.9,1.10 gdb.spec,1.336,1.337
Jan Kratochvil
jkratoch at fedoraproject.org
Mon Mar 30 17:32:01 UTC 2009
Author: jkratoch
Update of /cvs/pkgs/rpms/gdb/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv22359
Modified Files:
gdb-archer.patch gdb.spec
Log Message:
* Mon Mar 30 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8.50.20090302-13
- Archer update to the snapshot: d144a3633454046aaeae3e2c369c271834431d36
- Archer backport: a2c49b7640ebe7ce1376902d48d5bbbee600996b
- Fixup compilation older GCCs.
- Archer backport: fe48224ce1bd22f37a7fa6d111d54c1a340392bf
- KFAIL 4 cases of: gdb.arch/powerpc-power7.exp
- Archer backport: d144a3633454046aaeae3e2c369c271834431d36
- Fix C local extern variables (requires gcc-4.4.0-0.30).
gdb-archer.patch:
Index: gdb-archer.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-archer.patch,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- gdb-archer.patch 27 Mar 2009 08:52:16 -0000 1.9
+++ gdb-archer.patch 30 Mar 2009 17:32:00 -0000 1.10
@@ -2,7 +2,7 @@
http://sourceware.org/gdb/wiki/ArcherBranchManagement
GIT snapshot:
-commit 837d9879980148af05eae540d92caeb7200f1813
+commit d144a3633454046aaeae3e2c369c271834431d36
branch `archer' - the merge of branches:
archer-jankratochvil-merge-expr
@@ -14564,7 +14564,7 @@
#endif /* dwarf2loc.h */
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
-index 55868da..04942ec 100644
+index 55868da..9c1b90d 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -1,8 +1,7 @@
@@ -15483,7 +15483,7 @@
}
+/* read the given die's decl_line number. Return -1 if in case of an error */
-+static const int dwarf2_read_decl_line (struct die_info *die, struct dwarf2_cu *cu){
++static int dwarf2_read_decl_line (struct die_info *die, struct dwarf2_cu *cu){
+ struct attribute *line_attr;
+
+ line_attr = dwarf2_attr (die, DW_AT_decl_line, cu);
@@ -16709,6 +16709,15 @@
if (attr2 && (DW_UNSND (attr2) != 0))
add_symbol_to_list (sym, &global_symbols);
else
+@@ -7656,7 +8356,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
+ && dwarf2_attr (die, DW_AT_type, cu) != NULL)
+ {
+ SYMBOL_CLASS (sym) = LOC_UNRESOLVED;
+- add_symbol_to_list (sym, &global_symbols);
++ add_symbol_to_list (sym, cu->list_in_scope);
+ }
+ }
+ break;
@@ -7780,6 +8480,11 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
SYMBOL_CLASS (sym) = LOC_TYPEDEF;
add_symbol_to_list (sym, &global_symbols);
@@ -32852,7 +32861,7 @@
struct partial_symbol **bound, **gbound, **sbound;
int keep_going = 1;
diff --git a/gdb/symtab.h b/gdb/symtab.h
-index 8b086f3..06bf7e8 100644
+index 8b086f3..801cd2b 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -171,9 +171,6 @@ extern CORE_ADDR symbol_overlayed_address (CORE_ADDR, struct obj_section *);
@@ -32877,7 +32886,22 @@
}
domain_enum;
-@@ -1027,6 +1027,8 @@ extern void clear_pc_function_cache (void);
+@@ -472,7 +472,13 @@ enum address_class
+ in another object file or runtime common storage.
+ The linker might even remove the minimal symbol if the global
+ symbol is never referenced, in which case the symbol remains
+- unresolved. */
++ unresolved.
++
++ GDB would normally find the symbol in the minimal symbol table if it will
++ not find it in the full symbol table. But a reference to an external
++ symbol in a local block shadowing other definition requires full symbol
++ without possibly having its address available for LOC_STATIC. Testcase
++ is provided as `gdb.dwarf2/dw2-unresolved.exp'. */
+
+ LOC_UNRESOLVED,
+
+@@ -1027,6 +1033,8 @@ extern void clear_pc_function_cache (void);
/* from symtab.c: */
@@ -34122,10 +34146,10 @@
+gdb_test "break main" "" "Second permanent break"
diff --git a/gdb/testsuite/gdb.arch/powerpc-power7.exp b/gdb/testsuite/gdb.arch/powerpc-power7.exp
new file mode 100644
-index 0000000..d9c48f9
+index 0000000..ae301db
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/powerpc-power7.exp
-@@ -0,0 +1,166 @@
+@@ -0,0 +1,175 @@
+# Copyright 2009 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
@@ -34175,14 +34199,23 @@
+ }
+}
+
-+proc func_check {offset instr} {
++proc instr_to_patt {offset instr} {
++ # 0x0000000000000018 <func+24>: stxvd2x vs43,r4,r5
++ return ".*\r\n[string map {0x 0x0*} $offset] <func\\+?\[0-9\]*>:\[ \t\]*[string map [list { } "\[ \t\]+" . {\.}] $instr]\[ \t\]*\r\n.*"
++}
++
++# KFAIL strings would not exist if -Many would print the same as -Mpower7.
++# That means the power7 form should be the preferred one.
++# http://sourceware.org/ml/gdb-patches/2009-03/threads.html#00020
++
++proc func_check {offset instr {kfail ""}} {
+ global func
+
-+ # 0x0000000000000018 <func+24>: stxvd2x vs43,r4,r5
-+ set patt ".*\r\n[string map {0x 0x0*} $offset] <func\\+?\[0-9\]*>:\[ \t\]*[string map [list { } "\[ \t\]+" . {\.}] $instr]\[ \t\]*\r\n.*"
+ set test "Found $offset: $instr"
-+ if [regexp -nocase -line $patt $func] {
++ if [regexp -nocase -line [instr_to_patt $offset $instr] $func] {
+ pass $test
++ } elseif {$kfail != "" && [regexp -nocase -line [instr_to_patt $offset $kfail] $func]} {
++ kfail gdb/NNNN $test
+ } else {
+ fail $test
+ }
@@ -34226,8 +34259,8 @@
+func_check 0x8c "rvwinkle"
+func_check 0x90 "prtyw r3,r4"
+func_check 0x94 "prtyd r13,r14"
-+func_check 0x98 "mfcfar r10"
-+func_check 0x9c "mtcfar r11"
++func_check 0x98 "mfcfar r10" "mfspr r10,28"
++func_check 0x9c "mtcfar r11" "mtspr 28,r11"
+func_check 0xa0 "cmpb r3,r4,r5"
+func_check 0xa4 "lwzcix r10,r11,r12"
+func_check 0xa8 "dadd f16,f17,f18"
@@ -34271,8 +34304,8 @@
+func_check 0x140 "ftdiv cr7,f10,f11"
+func_check 0x144 "ftsqrt cr0,f10"
+func_check 0x148 "ftsqrt cr7,f10"
-+func_check 0x14c "dcbtt r8,r9"
-+func_check 0x150 "dcbtstt r8,r9"
++func_check 0x14c "dcbtt r8,r9" "dcbt 16,r8,r9"
++func_check 0x150 "dcbtstt r8,r9" "dcbtst 16,r8,r9"
+func_check 0x154 "dcffix f10,f12"
+func_check 0x158 "dcffix. f20,f22"
+func_check 0x15c "lbarx r10,r11,r12"
@@ -38866,6 +38899,282 @@
.string "hello world!\n"
+.Lemptyname:
+ .string ""
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-unresolved-main.c b/gdb/testsuite/gdb.dwarf2/dw2-unresolved-main.c
+new file mode 100644
+index 0000000..c24eb96
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-unresolved-main.c
+@@ -0,0 +1,46 @@
++/* This testcase is part of GDB, the GNU debugger.
++
++ Copyright 2009 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 <stdlib.h>
++
++asm (".globl cu_text_start");
++asm ("cu_text_start:");
++
++int
++main (void)
++{
++ unsigned char var = 1;
++
++ if (var != 1)
++ abort ();
++ {
++ extern unsigned char var;
++
++ /* Do not rely on the `extern' DIE output by GCC (GCC PR debug/39563). */
++asm (".globl extern_block_start");
++asm ("extern_block_start:");
++ if (var != 2)
++ abort ();
++asm (".globl extern_block_end");
++asm ("extern_block_end:");
++ }
++
++ return 0;
++}
++
++asm (".globl cu_text_end");
++asm ("cu_text_end:");
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-unresolved.S b/gdb/testsuite/gdb.dwarf2/dw2-unresolved.S
+new file mode 100644
+index 0000000..4c098f3
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-unresolved.S
+@@ -0,0 +1,171 @@
++/* This testcase is part of GDB, the GNU debugger.
++
++ Copyright 2007, 2008, 2009 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/>. */
++
++ .data
++
++/* VAR1 is wrong here, in the real inferior it is located on stack. As both
++ places are never modified and they are initialized to the same value it
++ makes no difference. Ensure the name clash for "var". */
++var1: .byte 1
++
++ .globl var
++var: .byte 2
++
++/* Debug information */
++
++ .section .debug_info
++.Lcu1_begin:
++ /* CU header */
++ .4byte .Lcu1_end - .Lcu1_start /* Length of Compilation Unit */
++.Lcu1_start:
++ .2byte 2 /* DWARF Version */
++ .4byte .Labbrev1_begin /* Offset into abbrev section */
++ .byte 4 /* Pointer size */
++
++ /* CU die */
++ .uleb128 1 /* Abbrev: DW_TAG_compile_unit */
++ .4byte cu_text_end /* DW_AT_high_pc */
++ .4byte cu_text_start /* DW_AT_low_pc */
++ .ascii "dw2-unresolved-main.c\0" /* DW_AT_name */
++ .ascii "GNU C 4.3.2\0" /* DW_AT_producer */
++ .byte 1 /* DW_AT_language (C) */
++
++.Ltype_uchar:
++ .uleb128 2 /* Abbrev: DW_TAG_base_type */
++ .ascii "unsigned char\0" /* DW_AT_name */
++ .byte 1 /* DW_AT_byte_size */
++ .byte 7 /* DW_AT_encoding */
++
++ /* main */
++ .uleb128 3 /* Abbrev: DW_TAG_subprogram */
++ .byte 1 /* DW_AT_decl_file */
++ .byte 2 /* DW_AT_decl_line */
++ .ascii "main\0" /* DW_AT_name */
++ .4byte .Ltype_uchar-.Lcu1_begin /* DW_AT_type */
++ .4byte cu_text_start /* DW_AT_low_pc */
++ .4byte cu_text_end /* DW_AT_high_pc */
++
++ .uleb128 4 /* Abbrev: DW_TAG_variable (location) */
++ .ascii "var\0" /* DW_AT_name */
++ .byte 2f - 1f /* DW_AT_location */
++1: .byte 3 /* DW_OP_addr */
++/* See VAR1 definition why this DIE is not correct. */
++ .4byte var1 /* <addr> */
++2: .4byte .Ltype_uchar-.Lcu1_begin /* DW_AT_type */
++
++ .uleb128 6 /* Abbrev: DW_TAG_lexical_block */
++ .4byte extern_block_start /* DW_AT_low_pc */
++ .4byte extern_block_end /* DW_AT_high_pc */
++
++ .uleb128 5 /* Abbrev: DW_TAG_variable (extern) */
++ .ascii "var\0" /* DW_AT_name */
++ .4byte .Ltype_uchar-.Lcu1_begin /* DW_AT_type */
++ .byte 1 /* DW_AT_external */
++
++ .byte 0 /* End of children of the lexical block */
++
++ .byte 0 /* End of children of main */
++
++ .byte 0 /* End of children of CU */
++
++.Lcu1_end:
++
++/* Abbrev table */
++ .section .debug_abbrev
++.Labbrev1_begin:
++ .uleb128 1 /* Abbrev code */
++ .uleb128 0x11 /* DW_TAG_compile_unit */
++ .byte 1 /* has_children */
++ .uleb128 0x12 /* DW_AT_high_pc */
++ .uleb128 0x1 /* DW_FORM_addr */
++ .uleb128 0x11 /* DW_AT_low_pc */
++ .uleb128 0x1 /* DW_FORM_addr */
++ .uleb128 0x3 /* DW_AT_name */
++ .uleb128 0x8 /* DW_FORM_string */
++ .uleb128 0x25 /* DW_AT_producer */
++ .uleb128 0x8 /* DW_FORM_string */
++ .uleb128 0x13 /* DW_AT_language */
++ .uleb128 0xb /* DW_FORM_data1 */
++ .byte 0x0 /* Terminator */
++ .byte 0x0 /* Terminator */
++
++ .uleb128 2 /* Abbrev code */
++ .uleb128 0x24 /* DW_TAG_base_type */
++ .byte 0 /* has_children */
++ .uleb128 0x3 /* DW_AT_name */
++ .uleb128 0x8 /* DW_FORM_string */
++ .uleb128 0xb /* DW_AT_byte_size */
++ .uleb128 0xb /* DW_FORM_data1 */
++ .uleb128 0x3e /* DW_AT_encoding */
++ .uleb128 0xb /* DW_FORM_data1 */
++ .byte 0x0 /* Terminator */
++ .byte 0x0 /* Terminator */
++
++ .uleb128 3 /* Abbrev code */
++ .uleb128 0x2e /* DW_TAG_subprogram */
++ .byte 1 /* has_children */
++ .uleb128 0x3a /* DW_AT_decl_file */
++ .uleb128 0xb /* DW_FORM_data1 */
++ .uleb128 0x3b /* DW_AT_decl_line */
++ .uleb128 0xb /* DW_FORM_data1 */
++ .uleb128 0x3 /* DW_AT_name */
++ .uleb128 0x8 /* DW_FORM_string */
++ .uleb128 0x49 /* DW_AT_type */
++ .uleb128 0x13 /* DW_FORM_ref4 */
++ .uleb128 0x11 /* DW_AT_low_pc */
++ .uleb128 0x1 /* DW_FORM_addr */
++ .uleb128 0x12 /* DW_AT_high_pc */
++ .uleb128 0x1 /* DW_FORM_addr */
++ .byte 0x0 /* Terminator */
++ .byte 0x0 /* Terminator */
++
++ .uleb128 4 /* Abbrev code (location) */
++ .uleb128 0x34 /* DW_TAG_variable */
++ .byte 0 /* has_children */
++ .uleb128 0x3 /* DW_AT_name */
++ .uleb128 0x8 /* DW_FORM_string */
++ .uleb128 0x2 /* DW_AT_location */
++ .uleb128 0xa /* DW_FORM_block1 */
++ .uleb128 0x49 /* DW_AT_type */
++ .uleb128 0x13 /* DW_FORM_ref4 */
++ .byte 0x0 /* Terminator */
++ .byte 0x0 /* Terminator */
++
++ .uleb128 5 /* Abbrev code (extern) */
++ .uleb128 0x34 /* DW_TAG_variable */
++ .byte 0 /* has_children */
++ .uleb128 0x3 /* DW_AT_name */
++ .uleb128 0x8 /* DW_FORM_string */
++ .uleb128 0x49 /* DW_AT_type */
++ .uleb128 0x13 /* DW_FORM_ref4 */
++ .uleb128 0x3f /* DW_AT_external */
++ .uleb128 0xc /* DW_FORM_flag */
++ .byte 0x0 /* Terminator */
++ .byte 0x0 /* Terminator */
++
++ .uleb128 6 /* Abbrev code */
++ .uleb128 0x0b /* DW_TAG_lexical_block */
++ .byte 1 /* has_children */
++ .uleb128 0x11 /* DW_AT_low_pc */
++ .uleb128 0x1 /* DW_FORM_addr */
++ .uleb128 0x12 /* DW_AT_high_pc */
++ .uleb128 0x1 /* DW_FORM_addr */
++ .byte 0x0 /* Terminator */
++ .byte 0x0 /* Terminator */
++
++ .byte 0x0 /* Terminator */
++ .byte 0x0 /* Terminator */
+diff --git a/gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp b/gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp
+new file mode 100644
+index 0000000..b955da9
+--- /dev/null
++++ b/gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp
+@@ -0,0 +1,41 @@
++# Copyright 2009 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/>.
++
++# This test can only be run on targets which support DWARF-2 and use gas.
++# For now pick a sampling of likely targets.
++if {![istarget *-*-linux*]
++ && ![istarget *-*-gnu*]
++ && ![istarget *-*-elf*]
++ && ![istarget *-*-openbsd*]
++ && ![istarget arm-*-eabi*]
++ && ![istarget powerpc-*-eabi*]} {
++ return 0
++}
++
++if { [prepare_for_testing dw2-unresolved.exp "dw2-unresolved" {dw2-unresolved-main.c dw2-unresolved.S} {nodebug}] } {
++ return -1
++}
++
++if ![runto_main] {
++ return -1
++}
++
++# This testcase tests LOC_UNRESOLVED works right.
++
++gdb_breakpoint "*extern_block_start"
++gdb_continue_to_breakpoint "*extern_block_start"
++
++# Expect the inner value 2. Value 1 from the outer local block is shadowed.
++gdb_test "print var" "= 2( '.*')?"
diff --git a/gdb/testsuite/gdb.fortran/common-block.exp b/gdb/testsuite/gdb.fortran/common-block.exp
new file mode 100644
index 0000000..888f6c3
Index: gdb.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb.spec,v
retrieving revision 1.336
retrieving revision 1.337
diff -u -r1.336 -r1.337
--- gdb.spec 27 Mar 2009 08:52:16 -0000 1.336
+++ gdb.spec 30 Mar 2009 17:32:01 -0000 1.337
@@ -13,7 +13,7 @@
# 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: 12%{?_with_upstream:.upstream}%{?dist}
+Release: 13%{?_with_upstream:.upstream}%{?dist}
License: GPLv3+
Group: Development/Debuggers
@@ -851,6 +851,15 @@
%endif
%changelog
+* Mon Mar 30 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8.50.20090302-13
+- Archer update to the snapshot: d144a3633454046aaeae3e2c369c271834431d36
+- Archer backport: a2c49b7640ebe7ce1376902d48d5bbbee600996b
+ - Fixup compilation older GCCs.
+- Archer backport: fe48224ce1bd22f37a7fa6d111d54c1a340392bf
+ - KFAIL 4 cases of: gdb.arch/powerpc-power7.exp
+- Archer backport: d144a3633454046aaeae3e2c369c271834431d36
+ - Fix C local extern variables (requires gcc-4.4.0-0.30).
+
* Fri Mar 27 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8.50.20090302-12
- Archer update to the snapshot: 837d9879980148af05eae540d92caeb7200f1813
- Archer backport: 8340d06295c8db80c544503458305197891e0348
More information about the fedora-extras-commits
mailing list