diff --git a/.cvsignore b/.cvsignore index a7fb665..3b34e37 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ -gdb-7.0.50.20100128.tar.bz2 +gdb-7.0.50.20100203.tar.bz2 libstdc++-v3-python-r155978.tar.bz2 diff --git a/gdb-6.6-gcore32-test.patch b/gdb-6.6-gcore32-test.patch index 4ebfbeb..8e4f48f 100644 --- a/gdb-6.6-gcore32-test.patch +++ b/gdb-6.6-gcore32-test.patch @@ -3,11 +3,11 @@ Test GCORE on 32bit inferiors on 64bit platforms. UNSUPPORTED results are valid for `-m64' on 32bit targets. -Index: gdb-6.8/gdb/testsuite/gdb.base/gcore.exp +Index: gdb-7.0.50.20100203/gdb/testsuite/gdb.base/gcore.exp =================================================================== ---- gdb-6.8.orig/gdb/testsuite/gdb.base/gcore.exp 2008-01-01 23:53:19.000000000 +0100 -+++ gdb-6.8/gdb/testsuite/gdb.base/gcore.exp 2008-07-14 10:28:05.000000000 +0200 -@@ -30,9 +30,14 @@ set testfile "gcore" +--- gdb-7.0.50.20100203.orig/gdb/testsuite/gdb.base/gcore.exp 2010-02-01 18:15:36.000000000 +0100 ++++ gdb-7.0.50.20100203/gdb/testsuite/gdb.base/gcore.exp 2010-02-03 06:39:54.000000000 +0100 +@@ -28,9 +28,14 @@ set testfile "gcore" set srcfile ${testfile}.c set binfile ${objdir}/${subdir}/${testfile} @@ -25,7 +25,7 @@ Index: gdb-6.8/gdb/testsuite/gdb.base/gcore.exp } # Start with a fresh gdb. -@@ -47,23 +52,23 @@ send_gdb "help gcore\n" +@@ -45,23 +50,23 @@ send_gdb "help gcore\n" gdb_expect { -re "Undefined command: .gcore.*$gdb_prompt $" { # gcore command not supported -- nothing to test here. @@ -56,16 +56,16 @@ Index: gdb-6.8/gdb/testsuite/gdb.base/gcore.exp } proc capture_command_output { command prefix } { -@@ -77,7 +82,7 @@ proc capture_command_output { command pr +@@ -69,7 +74,7 @@ proc capture_command_output { command pr + global expect_out + + set output_string "" +- gdb_test_multiple "$command" "capture_command_output for $command" { ++ gdb_test_multiple "$command" "${prefix} capture_command_output for $command" { + -re "${command}\[\r\n\]+${prefix}(.*)\[\r\n\]+$gdb_prompt $" { set output_string $expect_out(1,string) } - default { -- fail "capture_command_output failed on $command." -+ fail "${prefix} capture_command_output failed on $command." - } - } - return $output_string -@@ -109,22 +114,22 @@ set escapedfilename [string_to_regexp ${ +@@ -103,22 +108,22 @@ set escapedfilename [string_to_regexp ${ set core_supported 0 gdb_test_multiple "gcore ${objdir}/${subdir}/gcore.test" \ @@ -92,7 +92,7 @@ Index: gdb-6.8/gdb/testsuite/gdb.base/gcore.exp } # Now restart gdb and load the corefile. -@@ -136,31 +141,31 @@ gdb_load ${binfile} +@@ -130,31 +135,31 @@ gdb_load ${binfile} send_gdb "core ${objdir}/${subdir}/gcore.test\n" gdb_expect { -re ".* is not a core dump:.*$gdb_prompt $" { @@ -133,7 +133,7 @@ Index: gdb-6.8/gdb/testsuite/gdb.base/gcore.exp ".*\[\r\n\]+#0 .* terminal_func \\(\\) at " ".*\[\r\n\]+#1 .* array_func \\(\\) at " ".*\[\r\n\]+#2 .* factorial_func \\(value=1\\) at " -@@ -174,61 +179,64 @@ gdb_expect_list "where in corefile" ".*$ +@@ -168,61 +173,64 @@ gdb_expect_list "where in corefile" ".*$ set post_corefile_regs [capture_command_output "info registers" ""] if ![string compare $pre_corefile_regs $post_corefile_regs] then { diff --git a/gdb-archer.patch b/gdb-archer.patch index 040eb4f..3ec58c3 100644 --- a/gdb-archer.patch +++ b/gdb-archer.patch @@ -2,7 +2,7 @@ http://sourceware.org/gdb/wiki/ProjectArcher http://sourceware.org/gdb/wiki/ArcherBranchManagement GIT snapshot: -commit 5a573e8b26a2f0a6947d4c0249e43e5456610860 +commit 285cf618d9b90b7f8f201f094bcfead3c9ba8925 branch `archer' - the merge of branches: archer-tromey-delayed-symfile @@ -16,7 +16,7 @@ archer-jankratochvil-ifunc diff --git a/gdb/Makefile.in b/gdb/Makefile.in -index ff8b86e..f450a7b 100644 +index 98f42b9..dbf8273 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -167,6 +167,12 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@ @@ -328,10 +328,10 @@ index 01cc1ce..2a0fa84 100644 diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c -index 661a5bd..dc91ab1 100644 +index af409f6..406c066 100644 --- a/gdb/arm-linux-tdep.c +++ b/gdb/arm-linux-tdep.c -@@ -907,6 +907,9 @@ arm_linux_init_abi (struct gdbarch_info info, +@@ -918,6 +918,9 @@ arm_linux_init_abi (struct gdbarch_info info, set_gdbarch_displaced_step_free_closure (gdbarch, simple_displaced_step_free_closure); set_gdbarch_displaced_step_location (gdbarch, displaced_step_at_entry_point); @@ -1218,7 +1218,7 @@ index d620881..34cb34a 100644 dump_subexp_body_standard, evaluate_subexp_c diff --git a/gdb/c-typeprint.c b/gdb/c-typeprint.c -index d1af481..96b0705 100644 +index 27746d9..d4da180 100644 --- a/gdb/c-typeprint.c +++ b/gdb/c-typeprint.c @@ -32,6 +32,7 @@ @@ -2336,7 +2336,7 @@ index 6ef6767..5f4825c 100644 default_symfile_offsets, /* sym_offsets: parse user's offsets to internal form */ diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo -index fc11609..2fbdb8c 100644 +index 2145f2b..84cadd4 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -1157,6 +1157,16 @@ for remote debugging. @@ -3408,7 +3408,7 @@ index fa0bd11..fdea2b4 100644 #endif /* dwarf2loc.h */ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c -index 2f671ca..bf52d4f 100644 +index 86bfecb..ddf2189 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -48,6 +48,11 @@ @@ -4411,7 +4411,7 @@ index 2f671ca..bf52d4f 100644 } } -@@ -5236,51 +5578,6 @@ read_enumeration_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -5237,51 +5579,6 @@ read_enumeration_type (struct die_info *die, struct dwarf2_cu *cu) return set_die_type (die, type, cu); } @@ -4463,7 +4463,7 @@ index 2f671ca..bf52d4f 100644 /* Given a pointer to a die which begins an enumeration, process all the dies that define the members of the enumeration, and create the symbol for the enumeration type. -@@ -5358,6 +5655,29 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu) +@@ -5359,6 +5656,29 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu) new_symbol (die, this_type, cu); } @@ -4493,7 +4493,7 @@ index 2f671ca..bf52d4f 100644 /* Extract all information from a DW_TAG_array_type DIE and put it in the DIE's type field. For now, this only handles one dimensional arrays. */ -@@ -5371,7 +5691,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -5372,7 +5692,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu) struct type *element_type, *range_type, *index_type; struct type **range_types = NULL; struct attribute *attr; @@ -4502,7 +4502,7 @@ index 2f671ca..bf52d4f 100644 struct cleanup *back_to; char *name; -@@ -5418,16 +5738,11 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -5419,16 +5739,11 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu) type = element_type; if (read_array_order (die, cu) == DW_ORD_col_major) @@ -4524,7 +4524,7 @@ index 2f671ca..bf52d4f 100644 /* Understand Dwarf2 support for vector types (like they occur on the PowerPC w/ AltiVec). Gcc just adds another attribute to the -@@ -5616,7 +5931,7 @@ read_namespace (struct die_info *die, struct dwarf2_cu *cu) +@@ -5617,7 +5932,7 @@ read_namespace (struct die_info *die, struct dwarf2_cu *cu) if (is_anonymous) { const char *previous_prefix = determine_prefix (die, cu); @@ -4533,7 +4533,7 @@ index 2f671ca..bf52d4f 100644 } } -@@ -5632,20 +5947,155 @@ read_namespace (struct die_info *die, struct dwarf2_cu *cu) +@@ -5633,20 +5948,155 @@ read_namespace (struct die_info *die, struct dwarf2_cu *cu) } } @@ -4692,7 +4692,7 @@ index 2f671ca..bf52d4f 100644 } /* Return the name of the namespace represented by DIE. Set -@@ -5810,29 +6260,113 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -5811,29 +6261,113 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu) struct gdbarch *gdbarch = get_objfile_arch (objfile); struct type *type, *range_type, *index_type, *char_type; struct attribute *attr; @@ -4820,7 +4820,7 @@ index 2f671ca..bf52d4f 100644 char_type = language_string_char_type (cu->language_defn, gdbarch); type = create_string_type (NULL, char_type, range_type); -@@ -5932,7 +6466,6 @@ static struct type * +@@ -5933,7 +6467,6 @@ static struct type * read_typedef (struct die_info *die, struct dwarf2_cu *cu) { struct objfile *objfile = cu->objfile; @@ -4828,7 +4828,7 @@ index 2f671ca..bf52d4f 100644 const char *name = NULL; struct type *this_type; -@@ -6040,8 +6573,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -6041,8 +6574,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) struct type *base_type; struct type *range_type; struct attribute *attr; @@ -4838,7 +4838,7 @@ index 2f671ca..bf52d4f 100644 char *name; LONGEST negative_mask; -@@ -6055,49 +6587,101 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -6056,49 +6588,101 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) 0, NULL, cu->objfile); } @@ -4976,7 +4976,7 @@ index 2f671ca..bf52d4f 100644 name = dwarf2_name (die, cu); if (name) -@@ -6556,6 +7140,7 @@ load_partial_dies (bfd *abfd, gdb_byte *buffer, gdb_byte *info_ptr, +@@ -6557,6 +7141,7 @@ load_partial_dies (bfd *abfd, gdb_byte *buffer, gdb_byte *info_ptr, && abbrev->tag != DW_TAG_lexical_block && abbrev->tag != DW_TAG_variable && abbrev->tag != DW_TAG_namespace @@ -4984,7 +4984,7 @@ index 2f671ca..bf52d4f 100644 && abbrev->tag != DW_TAG_member) { /* Otherwise we skip to the next sibling, if any. */ -@@ -6764,8 +7349,8 @@ read_partial_die (struct partial_die_info *part_die, +@@ -6765,8 +7350,8 @@ read_partial_die (struct partial_die_info *part_die, } break; case DW_AT_MIPS_linkage_name: @@ -4995,7 +4995,7 @@ index 2f671ca..bf52d4f 100644 case DW_AT_low_pc: has_low_pc_attr = 1; part_die->lowpc = DW_ADDR (&attr); -@@ -6962,7 +7547,8 @@ fixup_partial_die (struct partial_die_info *part_die, +@@ -6963,7 +7548,8 @@ fixup_partial_die (struct partial_die_info *part_die, /* If we found a reference attribute and the DIE has no name, try to find a name in the referred to DIE. */ @@ -5005,7 +5005,7 @@ index 2f671ca..bf52d4f 100644 { struct partial_die_info *spec_die; -@@ -8304,10 +8890,12 @@ var_decode_location (struct attribute *attr, struct symbol *sym, +@@ -8305,10 +8891,12 @@ var_decode_location (struct attribute *attr, struct symbol *sym, (i.e. when the value of a register or memory location is referenced, or a thread-local block, etc.). Then again, it might not be worthwhile. I'm assuming that it isn't unless performance @@ -5020,7 +5020,7 @@ index 2f671ca..bf52d4f 100644 } /* Given a pointer to a DWARF information entry, figure out if we need -@@ -8329,21 +8917,29 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu) +@@ -8330,21 +8918,29 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu) baseaddr = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile)); @@ -5057,7 +5057,7 @@ index 2f671ca..bf52d4f 100644 /* Default assumptions. Use the passed type or decode it from the die. */ -@@ -8443,7 +9039,24 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu) +@@ -8444,7 +9040,24 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu) var_decode_location (attr, sym, cu); attr2 = dwarf2_attr (die, DW_AT_external, cu); if (attr2 && (DW_UNSND (attr2) != 0)) @@ -5083,7 +5083,7 @@ index 2f671ca..bf52d4f 100644 else add_symbol_to_list (sym, cu->list_in_scope); } -@@ -8604,6 +9217,11 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu) +@@ -8605,6 +9218,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); break; @@ -5095,7 +5095,7 @@ index 2f671ca..bf52d4f 100644 default: /* Not a tag we recognize. Hopefully we aren't processing trash data, but since we must specifically ignore things -@@ -8617,8 +9235,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu) +@@ -8618,8 +9236,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu) /* For the benefit of old versions of GCC, check for anonymous namespaces based on the demangled name. */ if (!processing_has_namespace_info @@ -5105,7 +5105,7 @@ index 2f671ca..bf52d4f 100644 cp_scan_for_anonymous_namespaces (sym); } return (sym); -@@ -8930,12 +9547,18 @@ read_type_die (struct die_info *die, struct dwarf2_cu *cu) +@@ -8931,12 +9548,18 @@ read_type_die (struct die_info *die, struct dwarf2_cu *cu) case DW_TAG_namespace: this_type = read_namespace_type (die, cu); break; @@ -5124,7 +5124,7 @@ index 2f671ca..bf52d4f 100644 return this_type; } -@@ -9017,10 +9640,103 @@ determine_prefix (struct die_info *die, struct dwarf2_cu *cu) +@@ -9018,10 +9641,103 @@ determine_prefix (struct die_info *die, struct dwarf2_cu *cu) So it does not need a prefix. */ return ""; default: @@ -5229,7 +5229,7 @@ index 2f671ca..bf52d4f 100644 /* Return a newly-allocated string formed by concatenating PREFIX and SUFFIX with appropriate separator. If PREFIX or SUFFIX is NULL or empty, then simply copy the SUFFIX or PREFIX, respectively. If OBS is non-null, -@@ -9070,17 +9786,111 @@ sibling_die (struct die_info *die) +@@ -9071,17 +9787,111 @@ sibling_die (struct die_info *die) return die->sibling; } @@ -5347,7 +5347,7 @@ index 2f671ca..bf52d4f 100644 } /* Get name of a die, return NULL if not found. */ -@@ -11428,6 +12238,34 @@ attr_form_is_constant (struct attribute *attr) +@@ -11429,6 +12239,34 @@ attr_form_is_constant (struct attribute *attr) } } @@ -5382,7 +5382,7 @@ index 2f671ca..bf52d4f 100644 static void dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym, struct dwarf2_cu *cu) -@@ -11457,35 +12295,25 @@ dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym, +@@ -11458,35 +12296,25 @@ dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym, SYMBOL_COMPUTED_OPS (sym) = &dwarf2_loclist_funcs; SYMBOL_LOCATION_BATON (sym) = baton; } @@ -5433,7 +5433,7 @@ index 2f671ca..bf52d4f 100644 } } -@@ -11773,6 +12601,31 @@ offset_and_type_eq (const void *item_lhs, const void *item_rhs) +@@ -11774,6 +12602,31 @@ offset_and_type_eq (const void *item_lhs, const void *item_rhs) return ofs_lhs->offset == ofs_rhs->offset; } @@ -5465,7 +5465,7 @@ index 2f671ca..bf52d4f 100644 /* Set the type associated with DIE to TYPE. Save it in CU's hash table if necessary. For convenience, return TYPE. */ -@@ -11781,6 +12634,8 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) +@@ -11782,6 +12635,8 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) { struct dwarf2_offset_and_type **slot, ofs; @@ -5474,7 +5474,7 @@ index 2f671ca..bf52d4f 100644 /* For Ada types, make sure that the gnat-specific data is always initialized (if not already set). There are a few types where we should not be doing so, because the type-specific area is -@@ -11936,23 +12791,13 @@ show_dwarf2_cmd (char *args, int from_tty) +@@ -11937,23 +12792,13 @@ show_dwarf2_cmd (char *args, int from_tty) cmd_show_list (show_dwarf2_cmdlist, from_tty, ""); } @@ -5502,7 +5502,7 @@ index 2f671ca..bf52d4f 100644 } /* munmap debug sections for OBJFILE, if necessary. */ -@@ -11961,15 +12806,15 @@ static void +@@ -11962,15 +12807,15 @@ static void dwarf2_per_objfile_free (struct objfile *objfile, void *d) { struct dwarf2_per_objfile *data = d; @@ -5527,7 +5527,7 @@ index 2f671ca..bf52d4f 100644 } void _initialize_dwarf2_read (void); -@@ -11977,6 +12822,7 @@ void _initialize_dwarf2_read (void); +@@ -11978,6 +12823,7 @@ void _initialize_dwarf2_read (void); void _initialize_dwarf2_read (void) { @@ -5954,7 +5954,7 @@ index ca216cf..2195fef 100644 + #endif /* !defined (EXPRESSION_H) */ diff --git a/gdb/f-lang.c b/gdb/f-lang.c -index b914b49..67c7232 100644 +index b914b49..78aef2f 100644 --- a/gdb/f-lang.c +++ b/gdb/f-lang.c @@ -31,6 +31,8 @@ @@ -5981,33 +5981,33 @@ index b914b49..67c7232 100644 + const struct block *block, + const domain_enum domain) +{ -+ struct fortran_using *use; -+ -+ if (!block) -+ return NULL; -+ -+ for (use = BLOCK_FORTRAN_USE (block); use; use = use->next) ++ if (block) + { -+ struct symbol *sym; -+ struct type *type; -+ struct symbol *retval; ++ struct fortran_using *use; + -+ sym = lookup_symbol_global (use->module_name, block, MODULE_DOMAIN); ++ for (use = BLOCK_FORTRAN_USE (block); use; use = use->next) ++ { ++ struct symbol *sym; ++ struct type *type; ++ struct symbol *retval; + -+ /* Module name lookup should not fail with correct debug info. */ -+ if (sym == NULL) -+ continue; ++ sym = lookup_symbol_global (use->module_name, block, MODULE_DOMAIN); + -+ type = SYMBOL_TYPE (sym); -+ gdb_assert (TYPE_CODE (type) == TYPE_CODE_MODULE); -+ gdb_assert (TYPE_MODULE_BLOCK (type) != NULL); ++ /* Module name lookup should not fail with correct debug info. */ ++ if (sym == NULL) ++ continue; + -+ retval = lookup_block_symbol (TYPE_MODULE_BLOCK (type), name, domain); -+ if (retval) -+ return retval; ++ type = SYMBOL_TYPE (sym); ++ gdb_assert (TYPE_CODE (type) == TYPE_CODE_MODULE); ++ gdb_assert (TYPE_MODULE_BLOCK (type) != NULL); ++ ++ retval = lookup_block_symbol (TYPE_MODULE_BLOCK (type), name, domain); ++ if (retval) ++ return retval; ++ } + } + -+ return NULL; ++ return basic_lookup_symbol_nonlocal (name, block, domain); +} + /* This is declared in c-lang.h but it is silly to import that file for what @@ -6749,7 +6749,7 @@ index cd24eaf..119af7d 100644 once for each known thread. */ typedef int (*thread_callback_func) (struct thread_info *, void *); diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c -index 2ff8647..2bdaca8 100644 +index 46846c4..bf6e891 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -39,6 +39,9 @@ @@ -6912,7 +6912,7 @@ index 2ff8647..2bdaca8 100644 return result_type; } -@@ -1344,6 +1418,105 @@ stub_noname_complaint (void) +@@ -1337,6 +1411,105 @@ stub_noname_complaint (void) complaint (&symfile_complaints, _("stub type has NULL name")); } @@ -7018,7 +7018,7 @@ index 2ff8647..2bdaca8 100644 /* Added by Bryan Boreham, Kewill, Sun Sep 17 18:07:17 1989. If this is a stubbed struct (i.e. declared as struct foo *), see if -@@ -1475,51 +1648,36 @@ check_typedef (struct type *type) +@@ -1468,51 +1641,36 @@ check_typedef (struct type *type) } } @@ -7090,7 +7090,7 @@ index 2ff8647..2bdaca8 100644 TYPE_TARGET_STUB (type) = 0; } else if (TYPE_CODE (type) == TYPE_CODE_RANGE) -@@ -1527,9 +1685,12 @@ check_typedef (struct type *type) +@@ -1520,9 +1678,12 @@ check_typedef (struct type *type) TYPE_LENGTH (type) = TYPE_LENGTH (target_type); TYPE_TARGET_STUB (type) = 0; } @@ -7103,7 +7103,7 @@ index 2ff8647..2bdaca8 100644 return type; } -@@ -1798,6 +1959,8 @@ init_type (enum type_code code, int length, int flags, +@@ -1791,6 +1952,8 @@ init_type (enum type_code code, int length, int flags, TYPE_NOTTEXT (type) = 1; if (flags & TYPE_FLAG_FIXED_INSTANCE) TYPE_FIXED_INSTANCE (type) = 1; @@ -7112,7 +7112,7 @@ index 2ff8647..2bdaca8 100644 if (name) TYPE_NAME (type) = obsavestring (name, strlen (name), -@@ -1822,6 +1985,7 @@ init_type (enum type_code code, int length, int flags, +@@ -1815,6 +1978,7 @@ init_type (enum type_code code, int length, int flags, TYPE_SPECIFIC_FIELD (type) = TYPE_SPECIFIC_CALLING_CONVENTION; break; } @@ -7120,7 +7120,7 @@ index 2ff8647..2bdaca8 100644 return type; } -@@ -2999,33 +3163,42 @@ type_pair_eq (const void *item_lhs, const void *item_rhs) +@@ -2992,33 +3156,42 @@ type_pair_eq (const void *item_lhs, const void *item_rhs) } /* Allocate the hash table used by copy_type_recursive to walk @@ -7178,7 +7178,7 @@ index 2ff8647..2bdaca8 100644 return type; /* This type shouldn't be pointing to any types in other objfiles; -@@ -3040,8 +3213,10 @@ copy_type_recursive (struct objfile *objfile, +@@ -3033,8 +3206,10 @@ copy_type_recursive (struct objfile *objfile, new_type = alloc_type_arch (get_type_arch (type)); /* We must add the new type to the hash table immediately, in case @@ -7191,7 +7191,7 @@ index 2ff8647..2bdaca8 100644 stored->old = type; stored->new = new_type; *slot = stored; -@@ -3052,6 +3227,19 @@ copy_type_recursive (struct objfile *objfile, +@@ -3045,6 +3220,19 @@ copy_type_recursive (struct objfile *objfile, TYPE_OBJFILE_OWNED (new_type) = 0; TYPE_OWNER (new_type).gdbarch = get_type_arch (type); @@ -7211,7 +7211,7 @@ index 2ff8647..2bdaca8 100644 if (TYPE_NAME (type)) TYPE_NAME (new_type) = xstrdup (TYPE_NAME (type)); if (TYPE_TAG_NAME (type)) -@@ -3060,12 +3248,45 @@ copy_type_recursive (struct objfile *objfile, +@@ -3053,12 +3241,45 @@ copy_type_recursive (struct objfile *objfile, TYPE_INSTANCE_FLAGS (new_type) = TYPE_INSTANCE_FLAGS (type); TYPE_LENGTH (new_type) = TYPE_LENGTH (type); @@ -7257,7 +7257,7 @@ index 2ff8647..2bdaca8 100644 TYPE_FIELDS (new_type) = XCALLOC (nfields, struct field); for (i = 0; i < nfields; i++) { -@@ -3074,8 +3295,8 @@ copy_type_recursive (struct objfile *objfile, +@@ -3067,8 +3288,8 @@ copy_type_recursive (struct objfile *objfile, TYPE_FIELD_BITSIZE (new_type, i) = TYPE_FIELD_BITSIZE (type, i); if (TYPE_FIELD_TYPE (type, i)) TYPE_FIELD_TYPE (new_type, i) @@ -7268,7 +7268,7 @@ index 2ff8647..2bdaca8 100644 if (TYPE_FIELD_NAME (type, i)) TYPE_FIELD_NAME (new_type, i) = xstrdup (TYPE_FIELD_NAME (type, i)); -@@ -3102,24 +3323,75 @@ copy_type_recursive (struct objfile *objfile, +@@ -3095,24 +3316,75 @@ copy_type_recursive (struct objfile *objfile, } } @@ -7350,7 +7350,7 @@ index 2ff8647..2bdaca8 100644 /* Maybe copy the type_specific bits. NOTE drow/2005-12-09: We do not copy the C++-specific bits like -@@ -3137,6 +3409,17 @@ copy_type_recursive (struct objfile *objfile, +@@ -3130,6 +3402,17 @@ copy_type_recursive (struct objfile *objfile, return new_type; } @@ -7368,7 +7368,7 @@ index 2ff8647..2bdaca8 100644 /* Make a copy of the given TYPE, except that the pointer & reference types are not preserved. -@@ -3159,6 +3442,211 @@ copy_type (const struct type *type) +@@ -3152,6 +3435,211 @@ copy_type (const struct type *type) return new_type; } @@ -7580,7 +7580,7 @@ index 2ff8647..2bdaca8 100644 /* Helper functions to initialize architecture-specific types. */ -@@ -3482,6 +3970,8 @@ gdbtypes_post_init (struct gdbarch *gdbarch) +@@ -3475,6 +3963,8 @@ gdbtypes_post_init (struct gdbarch *gdbarch) = lookup_pointer_type (builtin_type->builtin_void); builtin_type->builtin_func_ptr = lookup_pointer_type (lookup_function_type (builtin_type->builtin_void)); @@ -7589,7 +7589,7 @@ index 2ff8647..2bdaca8 100644 /* This type represents a GDB internal function. */ builtin_type->internal_fn -@@ -3595,6 +4085,11 @@ objfile_type (struct objfile *objfile) +@@ -3588,6 +4078,11 @@ objfile_type (struct objfile *objfile) "", objfile); TYPE_TARGET_TYPE (objfile_type->nodebug_text_symbol) = objfile_type->builtin_int; @@ -7601,7 +7601,7 @@ index 2ff8647..2bdaca8 100644 objfile_type->nodebug_data_symbol = init_type (TYPE_CODE_INT, gdbarch_int_bit (gdbarch) / HOST_CHAR_BIT, 0, -@@ -3649,6 +4144,11 @@ void +@@ -3642,6 +4137,11 @@ void _initialize_gdbtypes (void) { gdbtypes_data = gdbarch_data_register_post_init (gdbtypes_post_init); @@ -7614,7 +7614,7 @@ index 2ff8647..2bdaca8 100644 add_setshow_zinteger_cmd ("overload", no_class, &overload_debug, _("\ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h -index 72968a5..4df2a37 100644 +index 643fa03..6381dcf 100644 --- a/gdb/gdbtypes.h +++ b/gdb/gdbtypes.h @@ -138,6 +138,8 @@ enum type_code @@ -7659,9 +7659,9 @@ index 72968a5..4df2a37 100644 /* Type owner. If TYPE_OBJFILE_OWNED is true, the type is owned by the objfile retrieved as TYPE_OBJFILE. Otherweise, the type is owned by an architecture; TYPE_OBJFILE is NULL in this case. */ -@@ -279,6 +293,48 @@ enum type_instance_flag_value - #define TYPE_OWNER(t) TYPE_MAIN_TYPE(t)->owner - #define TYPE_OBJFILE(t) (TYPE_OBJFILE_OWNED(t)? TYPE_OWNER(t).objfile : NULL) +@@ -285,6 +299,48 @@ enum type_instance_flag_value + + #define TYPE_DECLARED_CLASS(t) (TYPE_MAIN_TYPE (t)->flag_declared_class) +/* Define this type as being reclaimable during free_all_types. Type is + required to be have TYPE_OBJFILE set to NULL. Setting this flag requires @@ -7708,7 +7708,7 @@ index 72968a5..4df2a37 100644 /* Constant type. If this is set, the corresponding type has a * const modifier. */ -@@ -336,8 +392,7 @@ enum field_loc_kind +@@ -342,8 +398,7 @@ enum field_loc_kind { FIELD_LOC_KIND_BITPOS, /* bitpos */ FIELD_LOC_KIND_PHYSADDR, /* physaddr */ @@ -7718,13 +7718,16 @@ index 72968a5..4df2a37 100644 }; /* A discriminant to determine which field in the main_type.type_specific -@@ -384,8 +439,16 @@ struct main_type +@@ -390,11 +445,19 @@ struct main_type unsigned int flag_vector : 1; unsigned int flag_stub_supported : 1; unsigned int flag_nottext : 1; + unsigned int flag_gnu_ifunc : 1; unsigned int flag_fixed_instance : 1; unsigned int flag_objfile_owned : 1; + /* True if this type was declared with "class" rather than + "struct". */ + unsigned int flag_declared_class : 1; + unsigned int flag_discardable : 1; + unsigned int flag_discardable_age : 1; + unsigned int flag_dynamic : 1; @@ -7735,7 +7738,7 @@ index 72968a5..4df2a37 100644 /* A discriminant telling us which field of the type_specific union is being used for this type, if any. */ -@@ -456,6 +519,20 @@ struct main_type +@@ -465,6 +528,20 @@ struct main_type struct type *target_type; @@ -7756,7 +7759,7 @@ index 72968a5..4df2a37 100644 /* For structure and union types, a description of each field. For set and pascal array types, there is one "field", whose type is the domain type of the set or array. -@@ -492,12 +569,6 @@ struct main_type +@@ -501,12 +578,6 @@ struct main_type CORE_ADDR physaddr; char *physname; @@ -7769,7 +7772,7 @@ index 72968a5..4df2a37 100644 } loc; -@@ -535,13 +606,22 @@ struct main_type +@@ -544,13 +615,22 @@ struct main_type struct range_bounds { @@ -7797,7 +7800,7 @@ index 72968a5..4df2a37 100644 /* Flags indicating whether the values of low and high are valid. When true, the respective range value is -@@ -593,6 +673,9 @@ struct main_type +@@ -602,6 +682,9 @@ struct main_type supporting multiple ABIs. Right now this is only fetched from the Dwarf-2 DW_AT_calling_convention attribute. */ unsigned calling_convention; @@ -7807,7 +7810,7 @@ index 72968a5..4df2a37 100644 } type_specific; }; -@@ -839,13 +922,6 @@ struct cplus_struct_type +@@ -838,13 +921,6 @@ struct cplus_struct_type int is_dynamic : 2; }; @@ -7821,7 +7824,7 @@ index 72968a5..4df2a37 100644 /* Struct used for ranking a function for overload resolution */ struct badness_vector { -@@ -900,9 +976,9 @@ extern void allocate_gnat_aux_type (struct type *); +@@ -899,9 +975,9 @@ extern void allocate_gnat_aux_type (struct type *); #define TYPE_POINTER_TYPE(thistype) (thistype)->pointer_type #define TYPE_REFERENCE_TYPE(thistype) (thistype)->reference_type #define TYPE_CHAIN(thistype) (thistype)->chain @@ -7834,7 +7837,7 @@ index 72968a5..4df2a37 100644 calls check_typedef, TYPE_LENGTH (VALUE_TYPE (X)) is safe. */ #define TYPE_LENGTH(thistype) (thistype)->length /* Note that TYPE_CODE can be TYPE_CODE_TYPEDEF, so if you want the real -@@ -911,15 +987,26 @@ extern void allocate_gnat_aux_type (struct type *); +@@ -910,15 +986,26 @@ extern void allocate_gnat_aux_type (struct type *); #define TYPE_NFIELDS(thistype) TYPE_MAIN_TYPE(thistype)->nfields #define TYPE_FIELDS(thistype) TYPE_MAIN_TYPE(thistype)->flds_bnds.fields #define TYPE_TEMPLATE_ARGS(thistype) TYPE_CPLUS_SPECIFIC(thistype)->template_args @@ -7863,7 +7866,7 @@ index 72968a5..4df2a37 100644 /* Moto-specific stuff for FORTRAN arrays */ -@@ -928,11 +1015,23 @@ extern void allocate_gnat_aux_type (struct type *); +@@ -927,11 +1014,23 @@ extern void allocate_gnat_aux_type (struct type *); #define TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED(arraytype) \ TYPE_LOW_BOUND_UNDEFINED(TYPE_INDEX_TYPE(arraytype)) @@ -7888,7 +7891,7 @@ index 72968a5..4df2a37 100644 /* C++ */ -@@ -961,6 +1060,7 @@ extern void allocate_gnat_aux_type (struct type *); +@@ -959,6 +1058,7 @@ extern void allocate_gnat_aux_type (struct type *); #define TYPE_GNAT_SPECIFIC(thistype) TYPE_MAIN_TYPE(thistype)->type_specific.gnat_stuff #define TYPE_DESCRIPTIVE_TYPE(thistype) TYPE_GNAT_SPECIFIC(thistype)->descriptive_type #define TYPE_CALLING_CONVENTION(thistype) TYPE_MAIN_TYPE(thistype)->type_specific.calling_convention @@ -7896,7 +7899,7 @@ index 72968a5..4df2a37 100644 #define TYPE_BASECLASS(thistype,index) TYPE_FIELD_TYPE(thistype, index) #define TYPE_N_BASECLASSES(thistype) TYPE_CPLUS_SPECIFIC(thistype)->n_baseclasses #define TYPE_BASECLASS_NAME(thistype,index) TYPE_FIELD_NAME(thistype, index) -@@ -979,7 +1079,6 @@ extern void allocate_gnat_aux_type (struct type *); +@@ -977,7 +1077,6 @@ extern void allocate_gnat_aux_type (struct type *); #define FIELD_BITPOS(thisfld) ((thisfld).loc.bitpos) #define FIELD_STATIC_PHYSNAME(thisfld) ((thisfld).loc.physname) #define FIELD_STATIC_PHYSADDR(thisfld) ((thisfld).loc.physaddr) @@ -7904,7 +7907,7 @@ index 72968a5..4df2a37 100644 #define SET_FIELD_BITPOS(thisfld, bitpos) \ (FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_BITPOS, \ FIELD_BITPOS (thisfld) = (bitpos)) -@@ -989,9 +1088,6 @@ extern void allocate_gnat_aux_type (struct type *); +@@ -987,9 +1086,6 @@ extern void allocate_gnat_aux_type (struct type *); #define SET_FIELD_PHYSADDR(thisfld, addr) \ (FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSADDR, \ FIELD_STATIC_PHYSADDR (thisfld) = (addr)) @@ -7914,7 +7917,7 @@ index 72968a5..4df2a37 100644 #define FIELD_ARTIFICIAL(thisfld) ((thisfld).artificial) #define FIELD_BITSIZE(thisfld) ((thisfld).bitsize) -@@ -1002,7 +1098,6 @@ extern void allocate_gnat_aux_type (struct type *); +@@ -1000,7 +1096,6 @@ extern void allocate_gnat_aux_type (struct type *); #define TYPE_FIELD_BITPOS(thistype, n) FIELD_BITPOS (TYPE_FIELD (thistype, n)) #define TYPE_FIELD_STATIC_PHYSNAME(thistype, n) FIELD_STATIC_PHYSNAME (TYPE_FIELD (thistype, n)) #define TYPE_FIELD_STATIC_PHYSADDR(thistype, n) FIELD_STATIC_PHYSADDR (TYPE_FIELD (thistype, n)) @@ -7922,7 +7925,7 @@ index 72968a5..4df2a37 100644 #define TYPE_FIELD_ARTIFICIAL(thistype, n) FIELD_ARTIFICIAL(TYPE_FIELD(thistype,n)) #define TYPE_FIELD_BITSIZE(thistype, n) FIELD_BITSIZE(TYPE_FIELD(thistype,n)) #define TYPE_FIELD_PACKED(thistype, n) (FIELD_BITSIZE(TYPE_FIELD(thistype,n))!=0) -@@ -1141,6 +1236,10 @@ struct builtin_type +@@ -1139,6 +1234,10 @@ struct builtin_type (*) () can server as a generic function pointer. */ struct type *builtin_func_ptr; @@ -7933,7 +7936,7 @@ index 72968a5..4df2a37 100644 /* Special-purpose types. */ -@@ -1181,6 +1280,7 @@ struct objfile_type +@@ -1179,6 +1278,7 @@ struct objfile_type /* Types used for symbols with no debug information. */ struct type *nodebug_text_symbol; @@ -7941,7 +7944,7 @@ index 72968a5..4df2a37 100644 struct type *nodebug_data_symbol; struct type *nodebug_unknown_symbol; struct type *nodebug_tls_symbol; -@@ -1335,6 +1435,18 @@ extern struct type *create_array_type (struct type *, struct type *, +@@ -1333,6 +1433,18 @@ extern struct type *create_array_type (struct type *, struct type *, struct type *); extern struct type *lookup_array_range_type (struct type *, int, int); @@ -7960,7 +7963,7 @@ index 72968a5..4df2a37 100644 extern struct type *create_string_type (struct type *, struct type *, struct type *); extern struct type *lookup_string_range_type (struct type *, int, int); -@@ -1377,6 +1489,8 @@ extern int is_public_ancestor (struct type *, struct type *); +@@ -1375,6 +1487,8 @@ extern int is_public_ancestor (struct type *, struct type *); extern int is_unique_ancestor (struct type *, struct value *); @@ -7969,7 +7972,7 @@ index 72968a5..4df2a37 100644 /* Overload resolution */ #define LENGTH_MATCH(bv) ((bv)->rank[0]) -@@ -1439,10 +1553,11 @@ extern void maintenance_print_type (char *, int); +@@ -1437,10 +1551,11 @@ extern void maintenance_print_type (char *, int); extern htab_t create_copied_types_hash (struct objfile *objfile); @@ -8230,7 +8233,7 @@ index b12f282..8ddb24a 100644 /* Provide a prototype to silence -Wmissing-prototypes. */ diff --git a/gdb/infcall.c b/gdb/infcall.c -index e736faa..8ec026b 100644 +index e642894..6ac95cc 100644 --- a/gdb/infcall.c +++ b/gdb/infcall.c @@ -252,9 +252,17 @@ find_function_addr (struct value *function, struct type **retval_type) @@ -8367,7 +8370,7 @@ index e557d6c..d4ae1df 100644 extern void notice_new_inferior (ptid_t, int, int); diff --git a/gdb/infrun.c b/gdb/infrun.c -index 06f3ea0..fe3719e 100644 +index 8307986..b4110a8 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -45,6 +45,8 @@ @@ -8379,7 +8382,7 @@ index 06f3ea0..fe3719e 100644 #include "gdb_assert.h" #include "mi/mi-common.h" #include "event-top.h" -@@ -2010,6 +2012,8 @@ static void insert_step_resume_breakpoint_at_sal (struct gdbarch *gdbarch, +@@ -2013,6 +2015,8 @@ static void insert_step_resume_breakpoint_at_sal (struct gdbarch *gdbarch, struct symtab_and_line sr_sal, struct frame_id sr_id); static void insert_longjmp_resume_breakpoint (struct gdbarch *, CORE_ADDR); @@ -8388,7 +8391,7 @@ index 06f3ea0..fe3719e 100644 static void stop_stepping (struct execution_control_state *ecs); static void prepare_to_wait (struct execution_control_state *ecs); -@@ -2930,6 +2934,10 @@ handle_inferior_event (struct execution_control_state *ecs) +@@ -2958,6 +2962,10 @@ handle_inferior_event (struct execution_control_state *ecs) stop_pc = regcache_read_pc (get_thread_regcache (ecs->ptid)); @@ -8399,7 +8402,7 @@ index 06f3ea0..fe3719e 100644 ecs->event_thread->stop_bpstat = bpstat_stop_status (get_regcache_aspace (get_current_regcache ()), stop_pc, ecs->ptid); -@@ -3014,6 +3022,10 @@ handle_inferior_event (struct execution_control_state *ecs) +@@ -3042,6 +3050,10 @@ handle_inferior_event (struct execution_control_state *ecs) stop_pc = regcache_read_pc (get_thread_regcache (ecs->ptid)); @@ -8410,7 +8413,7 @@ index 06f3ea0..fe3719e 100644 /* Do whatever is necessary to the parent branch of the vfork. */ handle_vfork_child_exec_or_exit (1); -@@ -3772,23 +3784,33 @@ process_event_stop_test: +@@ -3780,23 +3792,33 @@ process_event_stop_test: ecs->event_thread->stepping_over_breakpoint = 1; @@ -8456,7 +8459,7 @@ index 06f3ea0..fe3719e 100644 keep_going (ecs); return; -@@ -3800,6 +3822,53 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (!gdbarch_get_longjmp_target)\n"); +@@ -3808,6 +3830,53 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (!gdbarch_get_longjmp_target)\n"); gdb_assert (ecs->event_thread->step_resume_breakpoint != NULL); delete_step_resume_breakpoint (ecs->event_thread); @@ -8510,7 +8513,7 @@ index 06f3ea0..fe3719e 100644 ecs->event_thread->stop_step = 1; print_stop_reason (END_STEPPING_RANGE, 0); stop_stepping (ecs); -@@ -4819,6 +4888,96 @@ insert_longjmp_resume_breakpoint (struct gdbarch *gdbarch, CORE_ADDR pc) +@@ -4827,6 +4896,96 @@ insert_longjmp_resume_breakpoint (struct gdbarch *gdbarch, CORE_ADDR pc) set_momentary_breakpoint_at_pc (gdbarch, pc, bp_longjmp_resume); } @@ -8620,10 +8623,10 @@ index 24b6673..22ed960 100644 dump_subexp_body_standard, evaluate_subexp_java diff --git a/gdb/language.h b/gdb/language.h -index aaefb03..c274572 100644 +index 4f78a28..e0096f5 100644 --- a/gdb/language.h +++ b/gdb/language.h -@@ -237,7 +237,6 @@ struct language_defn +@@ -258,7 +258,6 @@ struct language_defn variables. */ struct symbol *(*la_lookup_symbol_nonlocal) (const char *, @@ -9824,7 +9827,7 @@ index 10ff73d..5b68f56 100644 t->to_stopped_data_address = ppc_linux_stopped_data_address; t->to_watchpoint_addr_within_range = ppc_linux_watchpoint_addr_within_range; diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c -index 36cedf1..2d736fe 100644 +index fae5ab2..94f993e 100644 --- a/gdb/ppc-linux-tdep.c +++ b/gdb/ppc-linux-tdep.c @@ -48,6 +48,7 @@ @@ -14287,7 +14290,7 @@ index 0000000..1f591a8 + PyType_GenericNew /* tp_new */ +}; diff --git a/gdb/python/py-prettyprint.c b/gdb/python/py-prettyprint.c -index 193f97c..2f2b365 100644 +index 454aa5a..9991f13 100644 --- a/gdb/python/py-prettyprint.c +++ b/gdb/python/py-prettyprint.c @@ -143,10 +143,15 @@ pretty_print_one_value (PyObject *printer, struct value **out_value) @@ -14310,7 +14313,7 @@ index 193f97c..2f2b365 100644 } } } -@@ -604,14 +609,7 @@ gdbpy_get_varobj_pretty_printer (struct value *value) +@@ -605,14 +610,7 @@ gdbpy_get_varobj_pretty_printer (struct value *value) { PyObject *val_obj; PyObject *pretty_printer = NULL; @@ -16163,10 +16166,10 @@ index 94a77fb..7ea68d2 100644 } diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c -index e497364..feba23c 100644 +index 5689bf3..2b609af 100644 --- a/gdb/solib-svr4.c +++ b/gdb/solib-svr4.c -@@ -1208,7 +1208,8 @@ svr4_in_dynsym_resolve_code (CORE_ADDR pc) +@@ -1218,7 +1218,8 @@ svr4_in_dynsym_resolve_code (CORE_ADDR pc) && pc < info->interp_text_sect_high) || (pc >= info->interp_plt_sect_low && pc < info->interp_plt_sect_high) @@ -16176,7 +16179,7 @@ index e497364..feba23c 100644 } /* Given an executable's ABFD and target, compute the entry-point -@@ -1961,7 +1962,6 @@ struct target_so_ops svr4_so_ops; +@@ -1971,7 +1972,6 @@ struct target_so_ops svr4_so_ops; static struct symbol * elf_lookup_lib_symbol (const struct objfile *objfile, const char *name, @@ -16184,7 +16187,7 @@ index e497364..feba23c 100644 const domain_enum domain) { bfd *abfd; -@@ -1979,8 +1979,7 @@ elf_lookup_lib_symbol (const struct objfile *objfile, +@@ -1989,8 +1989,7 @@ elf_lookup_lib_symbol (const struct objfile *objfile, if (abfd == NULL || scan_dyntag (DT_SYMBOLIC, abfd, NULL) != 1) return NULL; @@ -20903,190 +20906,11 @@ index 4362fd8..f7cfd57 100644 gdb_test "ptype C::OtherFileClass" "No symbol \"OtherFileClass\" in namespace \"C::C\"." # Some anonymous namespace tests. -diff --git a/gdb/testsuite/gdb.cp/nsusing.cc b/gdb/testsuite/gdb.cp/nsusing.cc -index b1f0ce4..0bf2df5 100644 ---- a/gdb/testsuite/gdb.cp/nsusing.cc -+++ b/gdb/testsuite/gdb.cp/nsusing.cc -@@ -1,34 +1,81 @@ --namespace O -+namespace M - { -- int ox = 4; -+ int x = 911; - } - --namespace PQ -+namespace N - { -- int marker6 () -+ int x = 912; -+} -+ -+int marker10 () -+{ -+ using namespace M; -+ int y = x + 1; // marker10 stop -+ using namespace N; -+ return y; -+} -+ -+namespace J -+{ -+ int jx = 44; -+} -+ -+namespace K -+{ -+ int -+ marker9 () - { -- return 0; -+ //x; -+ return marker10 (); - } - } - --namespace P -+namespace L - { -- using namespace O; -+ using namespace J; -+ int -+ marker8 () -+ { -+ jx; -+ return K::marker9 (); -+ } - } - --//-------------- --namespace C -+namespace G - { -- int cc = 3; -+ namespace H -+ { -+ int ghx = 6; -+ } - } - --using namespace C; --int marker5 () -+namespace I -+{ -+ int -+ marker7 () -+ { -+ using namespace G::H; -+ ghx; -+ return L::marker8 (); -+ } -+} -+ -+namespace E - { -- cc; -- return PQ::marker6 (); -+ namespace F -+ { -+ int efx = 5; -+ } - } - -+using namespace E::F; -+int -+marker6 () -+{ -+ efx; -+ return I::marker7 (); -+} - - namespace A - { -@@ -36,23 +83,47 @@ namespace A - int x = 2; - } - --int marker4(){ -- using A::x; -- return marker5 (); -+namespace C -+{ -+ int cc = 3; -+} -+ -+namespace D -+{ -+ int dx = 4; -+} -+ -+using namespace C; -+int -+marker5 () -+{ -+ cc; -+ return marker6 (); - } - --int marker3(){ -- return marker4(); -+int -+marker4 () -+{ -+ using D::dx; -+ return marker5 (); -+} -+ -+int -+marker3 () -+{ -+ return marker4 (); - } - --int marker2() -+int -+marker2 () - { - namespace B = A; - B::_a; -- return marker3(); -+ return marker3 (); - } - --int marker1() -+int -+marker1 () - { - int total = 0; - { -@@ -61,17 +132,18 @@ int marker1() - using namespace A; - int c = 2; - { -- int d = 3; -- total = _a + b + c + d + marker2(); // marker1 stop -+ int d = 3; -+ total = _a + b + c + d + marker2 (); // marker1 stop - } - } - } - return marker2() + total; - } - --int main() -+int -+main () - { - using namespace A; - _a; -- return marker1(); -+ return marker1 (); - } diff --git a/gdb/testsuite/gdb.cp/nsusing.exp b/gdb/testsuite/gdb.cp/nsusing.exp -index ef0237d..46a4a07 100644 +index bd115c4..5f80f7d 100644 --- a/gdb/testsuite/gdb.cp/nsusing.exp +++ b/gdb/testsuite/gdb.cp/nsusing.exp -@@ -29,7 +29,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb +@@ -30,7 +30,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \ } if [get_compiler_info ${binfile}] { @@ -21095,171 +20919,6 @@ index ef0237d..46a4a07 100644 } -@@ -51,32 +51,87 @@ if ![runto_main] then { - - gdb_test "print _a" "= 1" - -+# Test that names are not printed when they -+# are not imported -+ -+gdb_breakpoint marker3 -+gdb_continue_to_breakpoint "marker3" -+ -+#send_gdb "break marker3\n" -+#send_gdb "continue\n" -+ -+gdb_test "print _a" "No symbol \"_a\" in current context." "Print _a without import" -+ -+gdb_exit -+gdb_start -+gdb_reinitialize_dir $srcdir/$subdir -+gdb_load ${binfile} -+ -+ - ############################################ - # test printing of namespace imported into - # a scope containing the pc. - -+if ![runto_main] then { -+ perror "couldn't run to breakpoint main" -+ continue -+} -+ - gdb_breakpoint [gdb_get_line_number "marker1 stop"] - gdb_continue_to_breakpoint "marker1 stop" - - gdb_test "print _a" "= 1" "print _a in a nested scope" - -+ -+gdb_exit -+gdb_start -+gdb_reinitialize_dir $srcdir/$subdir -+gdb_load ${binfile} -+ -+############################################ -+# test printing of namespace imported into -+# file scope. -+ -+ -+if ![runto marker5] then { -+ perror "couldn't run to breakpoint marker5" -+ continue -+} -+ -+gdb_test "print cc" "= 3" -+ -+gdb_exit -+gdb_start -+gdb_reinitialize_dir $srcdir/$subdir -+gdb_load ${binfile} -+ -+ - ############################################ - # Test printing of namespace aliases - --setup_kfail "gdb/7935" "*-*-*" - if ![runto marker2] then { - perror "couldn't run to breakpoint marker2" - continue - } - --gdb_test "print B::a" "= 1" -+gdb_test "print B::_a" "= 1" -+ -+gdb_test "print _a" "No symbol \"_a\" in current context." "print _a in namespace alias scope" -+gdb_test "print x" "No symbol \"x\" in current context." "print x in namespace alias scope" -+ -+gdb_exit -+gdb_start -+gdb_reinitialize_dir $srcdir/$subdir -+gdb_load ${binfile} -+ - - ############################################ - # Test that names are not printed when they - # are not imported - --gdb_breakpoint "marker3" --gdb_continue_to_breakpoint "marker3" -+if {![runto marker3]} { -+ perror "couldn't run to breakpoint marker3" -+} - - # gcc-4-3 puts import statements for aliases in - # the global scope instead of the corresponding -@@ -89,32 +144,62 @@ gdb_test "print _a" "No symbol \"_a\" in current context." "Print _a without imp - ############################################ - # Test printing of individually imported elements - --setup_kfail "gdb/7936" "*-*-*" - if ![runto marker4] then { - perror "couldn't run to breakpoint marker4" - continue - } - --gdb_test "print x" "= 2" -+gdb_test "print dx" "= 4" - - ############################################ --# test printing of namespace imported into --# file scope. -+# Test printing of namespace aliases - - if ![runto marker5] then { - perror "couldn't run to marker5" - continue - } - --gdb_test "print cc" "= 3" -+gdb_test "print efx" "= 5" - - ############################################ --# test printing of namespace imported into --# file scope. -+# Test printing of variables imported from -+# nested namespaces - --if ![runto PQ::marker6] then { -- perror "couldn't run to PQ::marker6" -+if ![runto I::marker7] then { -+ perror "couldn't run to breakpoint I::marker7" - continue - } - --gdb_test "print ox" "No symbol \"ox\" in current context." -+gdb_test "print ghx" "= 6" -+ -+############################################ -+# Test that variables are not printed in a namespace -+# that is sibling to the namespace containing an import -+ -+if ![runto L::marker8] then { -+ perror "couldn't run to breakpoint L::marker8" -+ continue -+} -+ -+gdb_test "print jx" "= 44" -+ -+gdb_breakpoint "K::marker9" -+gdb_continue_to_breakpoint "K::marker9" -+ -+gdb_test "print jx" "No symbol \"jx\" in current context." -+ -+############################################ -+# Test that variables are only printed after the line -+# containing the import -+ -+if ![runto_main] then { -+ perror "couldn't run to breakpoint main" -+ continue -+} -+ -+gdb_breakpoint [gdb_get_line_number "marker10 stop"] -+gdb_continue_to_breakpoint "marker10 stop" -+ -+# Assert that M::x is printed and not N::x -+gdb_test "print x" "= 911" "print x (from M::x)" -+ diff --git a/gdb/testsuite/gdb.cp/overload.exp b/gdb/testsuite/gdb.cp/overload.exp index 1bfa0f3..9fd31a8 100644 --- a/gdb/testsuite/gdb.cp/overload.exp @@ -22878,7 +22537,7 @@ index 338c58a..56a735f 100644 cout << one; // marker1-returns-here cout << two; diff --git a/gdb/testsuite/gdb.cp/userdef.exp b/gdb/testsuite/gdb.cp/userdef.exp -index bd54c78..27ec80b 100644 +index 2bbf95e..25cade7 100644 --- a/gdb/testsuite/gdb.cp/userdef.exp +++ b/gdb/testsuite/gdb.cp/userdef.exp @@ -113,6 +113,7 @@ gdb_test "print one > two" "\\\$\[0-9\]* = 0\[\r\n\]" @@ -22891,7 +22550,7 @@ index bd54c78..27ec80b 100644 @@ -155,5 +156,8 @@ gdb_test "print *c" "\\\$\[0-9\]* = \\(Member &\\) @$hex: {z = .*}" gdb_test "print &*c" "\\\$\[0-9\]* = \\(Member \\*\\) $hex" - gdb_test "ptype &*c" "type = struct Member {\[\r\n \]+int z;\[\r\n\]+} &\\*" + gdb_test "ptype &*c" "type = (struct|class) Member {(\[\r\n \]+public:)?\[\r\n \]+int z;\[\r\n\]+} &\\*" +gdb_test "print operator== (mem1, mem2)" " = false" +gdb_test "print operator== (mem1, mem1)" " = true" @@ -23990,10 +23649,10 @@ index 0000000..4b4ea4c +gdb_test "print var_j" " = 3" +gdb_test "print var_k" "No symbol \"var_k\" in current context\\." diff --git a/gdb/testsuite/gdb.fortran/module.exp b/gdb/testsuite/gdb.fortran/module.exp -index 0acce4f..b952162 100644 +index 0acce4f..5e1034f 100644 --- a/gdb/testsuite/gdb.fortran/module.exp +++ b/gdb/testsuite/gdb.fortran/module.exp -@@ -15,21 +15,31 @@ +@@ -15,21 +15,41 @@ set testfile "module" set srcfile ${testfile}.f90 @@ -24034,11 +23693,21 @@ index 0acce4f..b952162 100644 +gdb_test "print var_c" "No symbol \"var_c\" in current context\\." +gdb_test "print var_d" " = 12" +gdb_test "print var_i" " = 14" "print var_i value 14" ++ ++# Breakpoint would work in language "c". ++gdb_test "show language" {The current source language is "(auto; currently )?fortran".} ++ ++# gcc-4.4.2: The main program is always MAIN__ in .symtab so "runto" above ++# works. But DWARF DW_TAG_subprogram contains the name specified by ++# the "program" Fortran statement. ++if [gdb_breakpoint "module"] { ++ pass "setting breakpoint at module" ++} diff --git a/gdb/testsuite/gdb.fortran/module.f90 b/gdb/testsuite/gdb.fortran/module.f90 -index 81ef376..fb6eccd 100644 +index 81ef376..a8428cb 100644 --- a/gdb/testsuite/gdb.fortran/module.f90 +++ b/gdb/testsuite/gdb.fortran/module.f90 -@@ -13,10 +13,37 @@ +@@ -13,10 +13,39 @@ ! You should have received a copy of the GNU General Public License ! along with this program. If not, see . @@ -24071,6 +23740,8 @@ index 81ef376..fb6eccd 100644 + var_i = var_i ! i-is-2 + end + ++ program module ++ + use modmany, only: var_b, var_d => var_c, var_i + + call sub1 @@ -26107,7 +25778,7 @@ index ed76b09..8bf3634 100644 } diff --git a/gdb/valops.c b/gdb/valops.c -index 2cdbcbe..6b82476 100644 +index cee10fb..b08cb21 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -38,6 +38,7 @@ @@ -26118,7 +25789,7 @@ index 2cdbcbe..6b82476 100644 #include #include "gdb_string.h" -@@ -374,8 +375,6 @@ value_cast (struct type *type, struct value *arg2) +@@ -397,8 +398,6 @@ value_cast (struct type *type, struct value *arg2) new_length = val_length / element_length; if (val_length % element_length != 0) warning (_("array element type size does not divide object size in cast")); @@ -26127,7 +25798,7 @@ index 2cdbcbe..6b82476 100644 range_type = create_range_type ((struct type *) NULL, TYPE_TARGET_TYPE (range_type), low_bound, -@@ -822,6 +821,64 @@ value_one (struct type *type, enum lval_type lv) +@@ -845,6 +844,64 @@ value_one (struct type *type, enum lval_type lv) return val; } @@ -26192,7 +25863,7 @@ index 2cdbcbe..6b82476 100644 /* Helper function for value_at, value_at_lazy, and value_at_lazy_stack. */ static struct value * -@@ -913,15 +970,21 @@ value_fetch_lazy (struct value *val) +@@ -936,15 +993,21 @@ value_fetch_lazy (struct value *val) } else if (VALUE_LVAL (val) == lval_memory) { @@ -26221,7 +25892,7 @@ index 2cdbcbe..6b82476 100644 } } else if (VALUE_LVAL (val) == lval_register) -@@ -1329,7 +1392,18 @@ address_of_variable (struct symbol *var, struct block *b) +@@ -1352,7 +1415,18 @@ address_of_variable (struct symbol *var, struct block *b) if ((VALUE_LVAL (val) == lval_memory && value_lazy (val)) || TYPE_CODE (type) == TYPE_CODE_FUNC) { @@ -26241,7 +25912,7 @@ index 2cdbcbe..6b82476 100644 return value_from_pointer (lookup_pointer_type (type), addr); } -@@ -1435,6 +1509,7 @@ struct value * +@@ -1458,6 +1532,7 @@ struct value * value_coerce_array (struct value *arg1) { struct type *type = check_typedef (value_type (arg1)); @@ -26249,7 +25920,7 @@ index 2cdbcbe..6b82476 100644 /* If the user tries to do something requiring a pointer with an array that has not yet been pushed to the target, then this would -@@ -1444,8 +1519,12 @@ value_coerce_array (struct value *arg1) +@@ -1467,8 +1542,12 @@ value_coerce_array (struct value *arg1) if (VALUE_LVAL (arg1) != lval_memory) error (_("Attempt to take address of value not located in memory.")); @@ -26263,7 +25934,7 @@ index 2cdbcbe..6b82476 100644 } /* Given a value which is a function, return a value which is a pointer -@@ -2328,12 +2407,25 @@ find_overload_match (struct type **arg_types, int nargs, +@@ -2352,12 +2431,25 @@ find_overload_match (struct type **arg_types, int nargs, if (method) { gdb_assert (obj); @@ -26294,7 +25965,7 @@ index 2cdbcbe..6b82476 100644 fns_ptr = value_find_oload_method_list (&temp, name, 0, &num_fns, -@@ -2353,16 +2445,29 @@ find_overload_match (struct type **arg_types, int nargs, +@@ -2377,16 +2469,29 @@ find_overload_match (struct type **arg_types, int nargs, } else { @@ -26332,7 +26003,7 @@ index 2cdbcbe..6b82476 100644 if (func_name == NULL) { *symp = fsym; -@@ -3096,9 +3201,9 @@ value_maybe_namespace_elt (const struct type *curtype, +@@ -3123,9 +3228,9 @@ value_maybe_namespace_elt (const struct type *curtype, struct symbol *sym; struct value *result; @@ -26345,7 +26016,7 @@ index 2cdbcbe..6b82476 100644 if (sym == NULL) return NULL; -@@ -3240,7 +3345,7 @@ value_of_local (const char *name, int complain) +@@ -3267,7 +3372,7 @@ value_of_local (const char *name, int complain) /* Calling lookup_block_symbol is necessary to get the LOC_REGISTER symbol instead of the LOC_ARG one (if both exist). */ @@ -26354,7 +26025,7 @@ index 2cdbcbe..6b82476 100644 if (sym == NULL) { if (complain) -@@ -3294,8 +3399,6 @@ value_slice (struct value *array, int lowbound, int length) +@@ -3321,8 +3426,6 @@ value_slice (struct value *array, int lowbound, int length) || lowbound + length - 1 > upperbound) error (_("slice out of range")); diff --git a/gdb-bz559414-pie-assert-fix.patch b/gdb-bz559414-pie-assert-fix.patch deleted file mode 100644 index 31c531f..0000000 --- a/gdb-bz559414-pie-assert-fix.patch +++ /dev/null @@ -1,172 +0,0 @@ -http://sourceware.org/ml/gdb-patches/2010-01/msg00661.html -Subject: [patch] Fix failed gdb_assert due to the PIE patchset - -Hi, - -the PIE patchset brought in an occasionally failing gdb_assert (according to -Fedora ABRT bugreports). -solib-svr4.c:600: internal-error: scan_dyntag: Assertion `target_section < current_target_sections->sections_end' failed. - -Now I understand it as generally current_target_sections are about target-side -data while symbols are the GDB side and there is only loose relation of those. - -ABFD can be from multiple places acting for multiple purposes as parsed by -elf_lookup_lib_symbol: - -exec_bfd: - It cannot be from exec_one - this BFD has no associated objfile to - pass to symfile_objfile. OK. -symfile_objfile: - It gets translated by elf_lookup_lib_symbol into exec_bfd which - represents the target data. OK. -so_list's objfile's separate_debug_objfile file: - gdb_assert-forbidden as input to elf_lookup_lib_symbol. OK. -so_list's objfile's main file: - update_solib_list must have called add_target_sections. OK. -objfile's separate_debug_objfile file: - gdb_assert-forbidden as input to elf_lookup_lib_symbol. OK. -objfile's main file (if it has no associated so_list): - Such ABFD from add_symbol_file_command has no add_target_sections - called. Still it can have current context BLOCK which crashes - scan_dyntag. BUG. - - -No regressions on {x86_64,x86_64-m32,i686}-fedora12-linux-gnu. - -The patch mostly reverts the PIE part there. - -OK to check in? - - -Sorry, -Jan - - -gdb/ -2010-01-31 Jan Kratochvil - - * solib-svr4.c (scan_dyntag): New variable dyn_addr. Replace gdb_assert - by a conditional setting DYN_ADDR. Use DYN_ADDR. - * config/djgpp/fnchange.lst: Add translations for - symbol-without-target_section.exp and symbol-without-target_section.c. - -gdb/testsuite/ -2010-01-31 Jan Kratochvil - - * gdb.base/symbol-without-target_section.exp, - gdb.base/symbol-without-target_section.c: New. - ---- a/gdb/config/djgpp/fnchange.lst -+++ b/gdb/config/djgpp/fnchange.lst -@@ -394,6 +394,8 @@ - @V@/gdb/testsuite/gdb.base/solib-symbol-main.c @V@/gdb/testsuite/gdb.base/so-symmain.c - @V@/gdb/testsuite/gdb.base/solib-overlap-lib.c @V@/gdb/testsuite/gdb.base/so-ovrlib.c - @V@/gdb/testsuite/gdb.base/solib-overlap-main.c @V@/gdb/testsuite/gdb.base/so-ovrmain.c -+@V@/gdb/testsuite/gdb.base/gdb.base/symbol-without-target_section.exp @V@/gdb/testsuite/gdb.base/symnosec.exp -+@V@/gdb/testsuite/gdb.base/gdb.base/symbol-without-target_section.c @V@/gdb/testsuite/gdb.base/symnosec.c - @V@/gdb/testsuite/gdb.base/type-opaque-lib.c @V@/gdb/testsuite/gdb.base/ty-opqlib.c - @V@/gdb/testsuite/gdb.base/type-opaque-main.c @V@/gdb/testsuite/gdb.base/ty-opqmain.c - @V@/gdb/testsuite/gdb.base/watchpoint-hw.c @V@/gdb/testsuite/gdb.base/wp-hw.c ---- a/gdb/solib-svr4.c -+++ b/gdb/solib-svr4.c -@@ -570,7 +570,7 @@ scan_dyntag (int dyntag, bfd *abfd, CORE_ADDR *ptr) - { - int arch_size, step, sect_size; - long dyn_tag; -- CORE_ADDR dyn_ptr; -+ CORE_ADDR dyn_ptr, dyn_addr; - gdb_byte *bufend, *bufstart, *buf; - Elf32_External_Dyn *x_dynp_32; - Elf64_External_Dyn *x_dynp_64; -@@ -597,7 +597,17 @@ scan_dyntag (int dyntag, bfd *abfd, CORE_ADDR *ptr) - target_section++) - if (sect == target_section->the_bfd_section) - break; -- gdb_assert (target_section < current_target_sections->sections_end); -+ if (target_section < current_target_sections->sections_end) -+ dyn_addr = target_section->addr; -+ else -+ { -+ /* ABFD may come from OBJFILE acting only as a symbol file without being -+ loaded into the target (see add_symbol_file_command). This case is -+ such fallback to the file VMA address without the possibility of -+ having the section relocated to its actual in-memory address. */ -+ -+ dyn_addr = bfd_section_vma (abfd, sect); -+ } - - /* Read in .dynamic from the BFD. We will get the actual value - from memory later. */ -@@ -639,7 +649,7 @@ scan_dyntag (int dyntag, bfd *abfd, CORE_ADDR *ptr) - CORE_ADDR ptr_addr; - - ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr; -- ptr_addr = target_section->addr + (buf - bufstart) + arch_size / 8; -+ ptr_addr = dyn_addr + (buf - bufstart) + arch_size / 8; - if (target_read_memory (ptr_addr, ptr_buf, arch_size / 8) == 0) - dyn_ptr = extract_typed_address (ptr_buf, ptr_type); - *ptr = dyn_ptr; ---- /dev/null -+++ b/gdb/testsuite/gdb.base/symbol-without-target_section.c -@@ -0,0 +1,18 @@ -+/* This testcase is part of GDB, the GNU debugger. -+ -+ Copyright 2010 Free Software Foundation, Inc. -+ -+ This program is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by -+ the Free Software Foundation; either version 3 of the License, or -+ (at your option) any later version. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ GNU General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program. If not, see . */ -+ -+int symbol_without_target_section; ---- /dev/null -+++ b/gdb/testsuite/gdb.base/symbol-without-target_section.exp -@@ -0,0 +1,39 @@ -+# Copyright 2010 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 3 of the License, or -+# (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program. If not, see . -+ -+# Exploit formerly failed assertion in scan_dyntag when it got called for -+# objfile having ".dynamic" section but without having data loaded in target. -+# Such file is ${binmainfile} through add-symbol-file here. Set context first -+# by "list main" to have some local BLOCK set in lookup_symbol_global. -+ -+set testfile symbol-without-target_section -+set srclibfile ${testfile}.c -+set binlibfile ${testfile}.x -+set srcmainfile start.c -+set binmainfile ${testfile} -+if { [gdb_compile "${srcdir}/${subdir}/${srclibfile}" \ -+ "${objdir}/${subdir}/${binlibfile}" object {debug}] != "" } { -+ untested ${testfile}.exp -+ return -1 -+} -+if {[build_executable ${testfile}.exp ${binmainfile} ${srcmainfile} {debug}] == -1} { -+ return -1 -+} -+clean_restart ${binlibfile} -+ -+gdb_test "add-symbol-file ${objdir}/${subdir}/${binmainfile} 0" "" "add-symbol-file" \ -+ "add symbol table from file \".*\" at.*\\(y or n\\) " "y" -+gdb_test "list main" -+gdb_test "print symbol_without_target_section" - diff --git a/gdb.spec b/gdb.spec index e110503..fbe287a 100644 --- a/gdb.spec +++ b/gdb.spec @@ -32,11 +32,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.0.50.20100128 +Version: 7.0.50.20100203 # 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 @@ -426,9 +426,6 @@ Patch408: gdb-ppc-power7-test.patch # Revert: Add -Wunused-function to compile flags. Patch412: gdb-unused-revert.patch -# Fix failed gdb_assert due to the PIE patchset (BZ 559414). -Patch414: gdb-bz559414-pie-assert-fix.patch - BuildRequires: ncurses-devel%{?_isa} texinfo gettext flex bison expat-devel%{?_isa} Requires: readline%{?_isa} BuildRequires: readline-devel%{?_isa} @@ -677,7 +674,6 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c %patch407 -p1 %patch408 -p1 %patch412 -p1 -%patch414 -p1 %patch415 -p1 %patch393 -p1 %patch335 -p1 @@ -1009,6 +1005,11 @@ fi %endif %changelog +* Wed Feb 3 2010 Jan Kratochvil - 7.0.50.20100203-13.fc13 +- archer-jankratochvil-fedora13 commit: 59c35a31f0981a0f0b884b32c91ae6325b2126cd +- Fortran: Fix regression on setting breakpoint at toplevel symbols (BZ 559291; + David Moore, Intel). + * Mon Feb 1 2010 Jan Kratochvil - 7.0.50.20100128-12.fc13 - archer-jankratochvil-fedora13 commit: 5a573e8b26a2f0a6947d4c0249e43e5456610860 - Remove ExcludeArch on ia64 as it is now fixed up. diff --git a/sources b/sources index 948786f..85caab6 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -057c9d088cd676396e0caae9d3ada879 gdb-7.0.50.20100128.tar.bz2 +179d5e54575f7a4d8dfbe423e1ee6678 gdb-7.0.50.20100203.tar.bz2 04e5c4b1b9e633422cc48990fe61958d libstdc++-v3-python-r155978.tar.bz2