- Make the package buildable on RHEL-5/CentOS-5 (without librpm there).

- archer-jankratochvil-fedora12 commit:
    5b73ea6a0f74e63db3b504792fc1d37f548bdf5c
This commit is contained in:
Jan Kratochvil 2009-10-23 20:05:50 +00:00
parent 5135752b6b
commit c5c5004db4
4 changed files with 93 additions and 79 deletions

View File

@ -1,2 +1,2 @@
libstdc++-v3-python-r151798.tar.xz
gdb-7.0.tar.bz2
libstdc++-v3-python-r151798.tar.bz2

View File

@ -2,7 +2,7 @@ http://sourceware.org/gdb/wiki/ProjectArcher
http://sourceware.org/gdb/wiki/ArcherBranchManagement
GIT snapshot:
commit ce4ead356654b951a49ca78d81ebfff95e758bf5
commit 5b73ea6a0f74e63db3b504792fc1d37f548bdf5c
branch `archer' - the merge of branches:
archer-tromey-call-frame-cfa
@ -4963,7 +4963,7 @@ index 0bfcfca..01018d6 100644
#endif /* dwarf2loc.h */
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 4cce36b..c2f5f23 100644
index 4cce36b..fb0a693 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -48,6 +48,12 @@
@ -5701,7 +5701,7 @@ index 4cce36b..c2f5f23 100644
if (die->child != NULL && (die->tag == DW_TAG_imported_declaration
|| cu->language != language_fortran))
complaint (&symfile_complaints, _("Tag '%s' has unexpected children"),
@@ -3310,41 +3583,68 @@ process_die (struct die_info *die, struct dwarf2_cu *cu)
@@ -3310,41 +3583,71 @@ process_die (struct die_info *die, struct dwarf2_cu *cu)
/* Return the fully qualified name of DIE, based on its DW_AT_name.
If scope qualifiers are appropriate they will be added. The result
will be allocated on the objfile_obstack, or NULL if the DIE does
@ -5776,14 +5776,17 @@ index 4cce36b..c2f5f23 100644
return name;
}
+/* 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){
+/* Read the given DIE's DW_AT_decl_line number. Return -1 if in case of an
+ error. */
+
+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);
+ if (line_attr){
+ return DW_UNSND (line_attr);
+ }
+ if (line_attr)
+ return DW_UNSND (line_attr);
+
+ return -1;
+}
@ -5791,7 +5794,7 @@ index 4cce36b..c2f5f23 100644
/* Read the import statement specified by the given die and record it. */
static void
@@ -3354,9 +3654,15 @@ read_import_statement (struct die_info *die, struct dwarf2_cu *cu)
@@ -3354,9 +3657,15 @@ read_import_statement (struct die_info *die, struct dwarf2_cu *cu)
struct die_info *imported_die;
const char *imported_name;
const char *imported_name_prefix;
@ -5809,7 +5812,7 @@ index 4cce36b..c2f5f23 100644
import_attr = dwarf2_attr (die, DW_AT_import, cu);
if (import_attr == NULL)
{
@@ -3404,17 +3710,27 @@ read_import_statement (struct die_info *die, struct dwarf2_cu *cu)
@@ -3404,17 +3713,27 @@ read_import_statement (struct die_info *die, struct dwarf2_cu *cu)
return;
}
@ -5843,7 +5846,7 @@ index 4cce36b..c2f5f23 100644
canonical_name = alloca (strlen (imported_name_prefix) + 2 + strlen (imported_name) + 1);
strcpy (canonical_name, imported_name_prefix);
strcat (canonical_name, "::");
@@ -3425,8 +3741,14 @@ read_import_statement (struct die_info *die, struct dwarf2_cu *cu)
@@ -3425,8 +3744,14 @@ read_import_statement (struct die_info *die, struct dwarf2_cu *cu)
canonical_name = alloca (strlen (imported_name) + 1);
strcpy (canonical_name, imported_name);
}
@ -5860,7 +5863,7 @@ index 4cce36b..c2f5f23 100644
}
static void
@@ -3695,6 +4017,14 @@ inherit_abstract_dies (struct die_info *die, struct dwarf2_cu *cu)
@@ -3695,6 +4020,14 @@ inherit_abstract_dies (struct die_info *die, struct dwarf2_cu *cu)
struct attribute *attr;
attr = dwarf2_attr (die, DW_AT_abstract_origin, cu);
@ -5875,7 +5878,7 @@ index 4cce36b..c2f5f23 100644
if (!attr)
return;
@@ -3793,6 +4123,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
@@ -3793,6 +4126,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
char *name;
CORE_ADDR baseaddr;
struct block *block;
@ -5883,7 +5886,7 @@ index 4cce36b..c2f5f23 100644
int inlined_func = (die->tag == DW_TAG_inlined_subroutine);
if (inlined_func)
@@ -3811,13 +4142,23 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
@@ -3811,13 +4145,23 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
baseaddr = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
@ -5910,7 +5913,7 @@ index 4cce36b..c2f5f23 100644
lowpc += baseaddr;
highpc += baseaddr;
@@ -3844,14 +4185,19 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
@@ -3844,14 +4188,19 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
cu->list_in_scope = &local_symbols;
@ -5937,7 +5940,7 @@ index 4cce36b..c2f5f23 100644
}
inherit_abstract_dies (die, cu);
@@ -3867,6 +4213,13 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
@@ -3867,6 +4216,13 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
determine_prefix (die, cu),
processing_has_namespace_info);
@ -5951,7 +5954,7 @@ index 4cce36b..c2f5f23 100644
/* If we have address ranges, record them. */
dwarf2_record_block_ranges (die, block, baseaddr, cu);
@@ -3903,7 +4256,7 @@ read_lexical_block_scope (struct die_info *die, struct dwarf2_cu *cu)
@@ -3903,7 +4259,7 @@ read_lexical_block_scope (struct die_info *die, struct dwarf2_cu *cu)
as multiple lexical blocks? Handling children in a sane way would
be nasty. Might be easier to properly extend generic blocks to
describe ranges. */
@ -5960,7 +5963,7 @@ index 4cce36b..c2f5f23 100644
return;
lowpc += baseaddr;
highpc += baseaddr;
@@ -3920,7 +4273,7 @@ read_lexical_block_scope (struct die_info *die, struct dwarf2_cu *cu)
@@ -3920,7 +4276,7 @@ read_lexical_block_scope (struct die_info *die, struct dwarf2_cu *cu)
}
new = pop_context ();
@ -5969,7 +5972,7 @@ index 4cce36b..c2f5f23 100644
{
struct block *block
= finish_block (0, &local_symbols, new->old_blocks, new->start_addr,
@@ -4075,7 +4428,8 @@ dwarf2_ranges_read (unsigned offset, CORE_ADDR *low_return,
@@ -4075,7 +4431,8 @@ dwarf2_ranges_read (unsigned offset, CORE_ADDR *low_return,
discontinuous, i.e. derived from DW_AT_ranges information. */
static int
dwarf2_get_pc_bounds (struct die_info *die, CORE_ADDR *lowpc,
@ -5979,7 +5982,7 @@ index 4cce36b..c2f5f23 100644
{
struct attribute *attr;
CORE_ADDR low = 0;
@@ -4103,7 +4457,7 @@ dwarf2_get_pc_bounds (struct die_info *die, CORE_ADDR *lowpc,
@@ -4103,7 +4460,7 @@ dwarf2_get_pc_bounds (struct die_info *die, CORE_ADDR *lowpc,
{
/* Value of the DW_AT_ranges attribute is the offset in the
.debug_ranges section. */
@ -5988,7 +5991,7 @@ index 4cce36b..c2f5f23 100644
return 0;
/* Found discontinuous range of addresses. */
ret = -1;
@@ -4142,7 +4496,7 @@ dwarf2_get_subprogram_pc_bounds (struct die_info *die,
@@ -4142,7 +4499,7 @@ dwarf2_get_subprogram_pc_bounds (struct die_info *die,
CORE_ADDR low, high;
struct die_info *child = die->child;
@ -5997,7 +6000,7 @@ index 4cce36b..c2f5f23 100644
{
*lowpc = min (*lowpc, low);
*highpc = max (*highpc, high);
@@ -4179,7 +4533,7 @@ get_scope_pc_bounds (struct die_info *die,
@@ -4179,7 +4536,7 @@ get_scope_pc_bounds (struct die_info *die,
CORE_ADDR best_high = (CORE_ADDR) 0;
CORE_ADDR current_low, current_high;
@ -6006,7 +6009,7 @@ index 4cce36b..c2f5f23 100644
{
best_low = current_low;
best_high = current_high;
@@ -4474,7 +4828,7 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die,
@@ -4474,7 +4831,7 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die,
return;
/* Get physical name. */
@ -6015,7 +6018,7 @@ index 4cce36b..c2f5f23 100644
/* The name is already allocated along with this objfile, so we don't
need to duplicate it for the type. */
@@ -4617,7 +4971,7 @@ dwarf2_add_member_fn (struct field_info *fip, struct die_info *die,
@@ -4617,7 +4974,7 @@ dwarf2_add_member_fn (struct field_info *fip, struct die_info *die,
return;
/* Get the mangled name. */
@ -6024,7 +6027,7 @@ index 4cce36b..c2f5f23 100644
/* Look up member function name in fieldlist. */
for (i = 0; i < fip->nfnfields; i++)
@@ -4661,7 +5015,7 @@ dwarf2_add_member_fn (struct field_info *fip, struct die_info *die,
@@ -4661,7 +5018,7 @@ dwarf2_add_member_fn (struct field_info *fip, struct die_info *die,
/* The name is already allocated along with this objfile, so we don't
need to duplicate it for the type. */
fnp->physname = physname ? physname : "";
@ -6033,7 +6036,7 @@ index 4cce36b..c2f5f23 100644
this_type = read_type_die (die, cu);
if (this_type && TYPE_CODE (this_type) == TYPE_CODE_FUNC)
{
@@ -4721,18 +5075,18 @@ dwarf2_add_member_fn (struct field_info *fip, struct die_info *die,
@@ -4721,18 +5078,18 @@ dwarf2_add_member_fn (struct field_info *fip, struct die_info *die,
{
/* Support the .debug_loc offsets */
if (attr_form_is_block (attr))
@ -6059,7 +6062,7 @@ index 4cce36b..c2f5f23 100644
}
}
@@ -4845,7 +5199,7 @@ quirk_gcc_member_function_pointer (struct die_info *die, struct dwarf2_cu *cu)
@@ -4845,7 +5202,7 @@ quirk_gcc_member_function_pointer (struct die_info *die, struct dwarf2_cu *cu)
return NULL;
domain_type = TYPE_TARGET_TYPE (TYPE_FIELD_TYPE (pfn_type, 0));
@ -6068,7 +6071,7 @@ index 4cce36b..c2f5f23 100644
smash_to_method_type (type, domain_type, TYPE_TARGET_TYPE (pfn_type),
TYPE_FIELDS (pfn_type), TYPE_NFIELDS (pfn_type),
TYPE_VARARGS (pfn_type));
@@ -4898,7 +5252,7 @@ read_structure_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -4898,7 +5255,7 @@ read_structure_type (struct die_info *die, struct dwarf2_cu *cu)
return set_die_type (die, type, cu);
}
@ -6077,7 +6080,7 @@ index 4cce36b..c2f5f23 100644
INIT_CPLUS_SPECIFIC (type);
name = dwarf2_name (die, cu);
@@ -4907,14 +5261,18 @@ read_structure_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -4907,14 +5264,18 @@ read_structure_type (struct die_info *die, struct dwarf2_cu *cu)
if (cu->language == language_cplus
|| cu->language == language_java)
{
@ -6099,7 +6102,7 @@ index 4cce36b..c2f5f23 100644
}
}
@@ -5124,7 +5482,7 @@ read_enumeration_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -5124,7 +5485,7 @@ read_enumeration_type (struct die_info *die, struct dwarf2_cu *cu)
return set_die_type (die, type, cu);
}
@ -6108,7 +6111,7 @@ index 4cce36b..c2f5f23 100644
TYPE_CODE (type) = TYPE_CODE_ENUM;
name = dwarf2_full_name (die, cu);
@@ -5152,51 +5510,6 @@ read_enumeration_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -5152,51 +5513,6 @@ read_enumeration_type (struct die_info *die, struct dwarf2_cu *cu)
return set_die_type (die, type, cu);
}
@ -6160,7 +6163,7 @@ index 4cce36b..c2f5f23 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.
@@ -5274,6 +5587,29 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu)
@@ -5274,6 +5590,29 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu)
new_symbol (die, this_type, cu);
}
@ -6190,7 +6193,7 @@ index 4cce36b..c2f5f23 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. */
@@ -5287,7 +5623,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -5287,7 +5626,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;
@ -6199,7 +6202,7 @@ index 4cce36b..c2f5f23 100644
struct cleanup *back_to;
char *name;
@@ -5334,16 +5670,11 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -5334,16 +5673,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)
@ -6221,7 +6224,7 @@ index 4cce36b..c2f5f23 100644
/* Understand Dwarf2 support for vector types (like they occur on
the PowerPC w/ AltiVec). Gcc just adds another attribute to the
@@ -5410,12 +5741,14 @@ read_set_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -5410,12 +5744,14 @@ read_set_type (struct die_info *die, struct dwarf2_cu *cu)
return set_die_type (die, set_type, cu);
}
@ -6238,7 +6241,7 @@ index 4cce36b..c2f5f23 100644
struct attribute *attr;
struct symbol *sym;
CORE_ADDR base = (CORE_ADDR) 0;
@@ -5425,25 +5758,55 @@ read_common_block (struct die_info *die, struct dwarf2_cu *cu)
@@ -5425,25 +5761,55 @@ read_common_block (struct die_info *die, struct dwarf2_cu *cu)
{
/* Support the .debug_loc offsets */
if (attr_form_is_block (attr))
@ -6301,7 +6304,7 @@ index 4cce36b..c2f5f23 100644
attr = dwarf2_attr (child_die, DW_AT_data_member_location, cu);
if (attr)
{
@@ -5461,8 +5824,25 @@ read_common_block (struct die_info *die, struct dwarf2_cu *cu)
@@ -5461,8 +5827,25 @@ read_common_block (struct die_info *die, struct dwarf2_cu *cu)
SYMBOL_VALUE_ADDRESS (sym) = base + byte_offset;
add_symbol_to_list (sym, &global_symbols);
}
@ -6327,7 +6330,7 @@ index 4cce36b..c2f5f23 100644
}
}
@@ -5530,7 +5910,7 @@ read_namespace (struct die_info *die, struct dwarf2_cu *cu)
@@ -5530,7 +5913,7 @@ read_namespace (struct die_info *die, struct dwarf2_cu *cu)
if (is_anonymous)
{
const char *previous_prefix = determine_prefix (die, cu);
@ -6336,7 +6339,7 @@ index 4cce36b..c2f5f23 100644
}
}
@@ -5546,20 +5926,155 @@ read_namespace (struct die_info *die, struct dwarf2_cu *cu)
@@ -5546,20 +5929,155 @@ read_namespace (struct die_info *die, struct dwarf2_cu *cu)
}
}
@ -6376,18 +6379,18 @@ index 4cce36b..c2f5f23 100644
+
+ if (die_is_declaration (die, cu))
+ return NULL;
- /* FIXME: Support the separate Fortran module namespaces. */
+
+ module_name = dwarf2_name (die, cu);
+ if (!module_name)
+ complaint (&symfile_complaints, _("DW_TAG_module has no name, offset 0x%x"),
+ die->offset);
+ type = init_type (TYPE_CODE_MODULE, 0, 0, module_name, objfile);
+
+ /* Create a context for reading the module variables. */
+
- /* FIXME: Support the separate Fortran module namespaces. */
+ new = push_context (0, 0);
+
+ save_file_symbols = file_symbols;
+ file_symbols = NULL;
+ save_global_symbols = global_symbols;
@ -6495,7 +6498,7 @@ index 4cce36b..c2f5f23 100644
}
/* Return the name of the namespace represented by DIE. Set
@@ -5724,29 +6239,113 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -5724,29 +6242,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;
@ -6623,7 +6626,7 @@ index 4cce36b..c2f5f23 100644
char_type = language_string_char_type (cu->language_defn, gdbarch);
type = create_string_type (NULL, char_type, range_type);
@@ -5841,7 +6440,6 @@ static struct type *
@@ -5841,7 +6443,6 @@ static struct type *
read_typedef (struct die_info *die, struct dwarf2_cu *cu)
{
struct objfile *objfile = cu->objfile;
@ -6631,7 +6634,7 @@ index 4cce36b..c2f5f23 100644
const char *name = NULL;
struct type *this_type;
@@ -5949,8 +6547,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -5949,8 +6550,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
struct type *base_type;
struct type *range_type;
struct attribute *attr;
@ -6641,7 +6644,7 @@ index 4cce36b..c2f5f23 100644
char *name;
base_type = die_type (die, cu);
@@ -5963,42 +6560,89 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -5963,42 +6563,89 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
0, NULL, cu->objfile);
}
@ -6760,7 +6763,7 @@ index 4cce36b..c2f5f23 100644
name = dwarf2_name (die, cu);
if (name)
@@ -6469,6 +7113,7 @@ load_partial_dies (bfd *abfd, gdb_byte *buffer, gdb_byte *info_ptr,
@@ -6469,6 +7116,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
@ -6768,7 +6771,7 @@ index 4cce36b..c2f5f23 100644
&& abbrev->tag != DW_TAG_member)
{
/* Otherwise we skip to the next sibling, if any. */
@@ -6689,9 +7334,6 @@ read_partial_die (struct partial_die_info *part_die,
@@ -6689,9 +7337,6 @@ read_partial_die (struct partial_die_info *part_die,
if (part_die->dirname == NULL)
part_die->dirname = DW_STRING (&attr);
break;
@ -6778,7 +6781,7 @@ index 4cce36b..c2f5f23 100644
case DW_AT_low_pc:
has_low_pc_attr = 1;
part_die->lowpc = DW_ADDR (&attr);
@@ -6923,7 +7565,8 @@ fixup_partial_die (struct partial_die_info *part_die,
@@ -6923,7 +7568,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. */
@ -6788,7 +6791,7 @@ index 4cce36b..c2f5f23 100644
{
struct partial_die_info *spec_die;
@@ -8265,10 +8908,12 @@ var_decode_location (struct attribute *attr, struct symbol *sym,
@@ -8265,10 +8911,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
@ -6803,7 +6806,7 @@ index 4cce36b..c2f5f23 100644
}
/* Given a pointer to a DWARF information entry, figure out if we need
@@ -8290,21 +8935,30 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
@@ -8290,21 +8938,30 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
baseaddr = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
@ -6841,7 +6844,7 @@ index 4cce36b..c2f5f23 100644
/* Default assumptions.
Use the passed type or decode it from the die. */
@@ -8402,9 +9056,28 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
@@ -8402,9 +9059,28 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
if (attr)
{
var_decode_location (attr, sym, cu);
@ -6871,7 +6874,7 @@ index 4cce36b..c2f5f23 100644
else
add_symbol_to_list (sym, cu->list_in_scope);
}
@@ -8534,7 +9207,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
@@ -8534,7 +9210,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
add_symbol_to_list (sym, cu->list_in_scope);
break;
case DW_TAG_enumerator:
@ -6880,7 +6883,7 @@ index 4cce36b..c2f5f23 100644
attr = dwarf2_attr (die, DW_AT_const_value, cu);
if (attr)
{
@@ -8558,6 +9231,16 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
@@ -8558,6 +9234,16 @@ 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;
@ -6897,7 +6900,7 @@ index 4cce36b..c2f5f23 100644
default:
/* Not a tag we recognize. Hopefully we aren't processing
trash data, but since we must specifically ignore things
@@ -8571,8 +9254,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
@@ -8571,8 +9257,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
@ -6907,7 +6910,7 @@ index 4cce36b..c2f5f23 100644
cp_scan_for_anonymous_namespaces (sym);
}
return (sym);
@@ -8823,12 +9505,18 @@ read_type_die (struct die_info *die, struct dwarf2_cu *cu)
@@ -8823,12 +9508,18 @@ read_type_die (struct die_info *die, struct dwarf2_cu *cu)
case DW_TAG_namespace:
this_type = read_namespace_type (die, cu);
break;
@ -6926,7 +6929,7 @@ index 4cce36b..c2f5f23 100644
return this_type;
}
@@ -8910,10 +9598,100 @@ determine_prefix (struct die_info *die, struct dwarf2_cu *cu)
@@ -8910,10 +9601,100 @@ determine_prefix (struct die_info *die, struct dwarf2_cu *cu)
So it does not need a prefix. */
return "";
default:
@ -7028,7 +7031,7 @@ index 4cce36b..c2f5f23 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,
@@ -8963,17 +9741,111 @@ sibling_die (struct die_info *die)
@@ -8963,17 +9744,111 @@ sibling_die (struct die_info *die)
return die->sibling;
}
@ -7146,7 +7149,7 @@ index 4cce36b..c2f5f23 100644
}
/* Get name of a die, return NULL if not found. */
@@ -10200,11 +11072,11 @@ dwarf2_get_ref_die_offset (struct attribute *attr)
@@ -10200,11 +11075,11 @@ dwarf2_get_ref_die_offset (struct attribute *attr)
return 0;
}
@ -7161,7 +7164,7 @@ index 4cce36b..c2f5f23 100644
{
if (attr->form == DW_FORM_sdata)
return DW_SND (attr);
@@ -11009,8 +11881,6 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
@@ -11009,8 +11884,6 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
{
gdb_byte *mac_ptr, *mac_end;
struct macro_source_file *current_file = 0;
@ -7170,7 +7173,7 @@ index 4cce36b..c2f5f23 100644
if (dwarf2_per_objfile->macinfo.buffer == NULL)
{
@@ -11018,29 +11888,19 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
@@ -11018,29 +11891,19 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
return;
}
@ -7205,7 +7208,7 @@ index 4cce36b..c2f5f23 100644
}
macinfo_type = read_1_byte (abfd, mac_ptr);
@@ -11051,92 +11911,7 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
@@ -11051,92 +11914,7 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
/* A zero macinfo type indicates the end of the macro
information. */
case 0:
@ -7299,7 +7302,7 @@ index 4cce36b..c2f5f23 100644
case DW_MACINFO_define:
case DW_MACINFO_undef:
@@ -11151,31 +11926,19 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
@@ -11151,31 +11929,19 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
mac_ptr += bytes_read;
if (! current_file)
@ -7342,7 +7345,7 @@ index 4cce36b..c2f5f23 100644
}
break;
@@ -11189,22 +11952,9 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
@@ -11189,22 +11955,9 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
file = read_unsigned_leb128 (abfd, mac_ptr, &bytes_read);
mac_ptr += bytes_read;
@ -7368,7 +7371,7 @@ index 4cce36b..c2f5f23 100644
}
break;
@@ -11258,7 +12008,7 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
@@ -11258,7 +12011,7 @@ dwarf_decode_macros (struct line_header *lh, unsigned int offset,
}
break;
}
@ -7377,7 +7380,7 @@ index 4cce36b..c2f5f23 100644
}
/* Check if the attribute's form is a DW_FORM_block*
@@ -11318,6 +12068,34 @@ attr_form_is_constant (struct attribute *attr)
@@ -11318,6 +12071,34 @@ attr_form_is_constant (struct attribute *attr)
}
}
@ -7412,7 +7415,7 @@ index 4cce36b..c2f5f23 100644
static void
dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym,
struct dwarf2_cu *cu)
@@ -11347,35 +12125,25 @@ dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym,
@@ -11347,35 +12128,25 @@ dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym,
SYMBOL_COMPUTED_OPS (sym) = &dwarf2_loclist_funcs;
SYMBOL_LOCATION_BATON (sym) = baton;
}
@ -7463,7 +7466,7 @@ index 4cce36b..c2f5f23 100644
}
}
@@ -11663,6 +12431,31 @@ offset_and_type_eq (const void *item_lhs, const void *item_rhs)
@@ -11663,6 +12434,31 @@ offset_and_type_eq (const void *item_lhs, const void *item_rhs)
return ofs_lhs->offset == ofs_rhs->offset;
}
@ -7495,7 +7498,7 @@ index 4cce36b..c2f5f23 100644
/* Set the type associated with DIE to TYPE. Save it in CU's hash
table if necessary. For convenience, return TYPE. */
@@ -11671,6 +12464,8 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
@@ -11671,6 +12467,8 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
{
struct dwarf2_offset_and_type **slot, ofs;
@ -7504,7 +7507,7 @@ index 4cce36b..c2f5f23 100644
if (cu->type_hash == NULL)
{
gdb_assert (cu->per_cu != NULL);
@@ -11813,23 +12608,13 @@ show_dwarf2_cmd (char *args, int from_tty)
@@ -11813,23 +12611,13 @@ show_dwarf2_cmd (char *args, int from_tty)
cmd_show_list (show_dwarf2_cmdlist, from_tty, "");
}
@ -7532,7 +7535,7 @@ index 4cce36b..c2f5f23 100644
}
/* munmap debug sections for OBJFILE, if necessary. */
@@ -11838,15 +12623,15 @@ static void
@@ -11838,15 +12626,15 @@ static void
dwarf2_per_objfile_free (struct objfile *objfile, void *d)
{
struct dwarf2_per_objfile *data = d;
@ -7557,7 +7560,7 @@ index 4cce36b..c2f5f23 100644
}
void _initialize_dwarf2_read (void);
@@ -11854,6 +12639,7 @@ void _initialize_dwarf2_read (void);
@@ -11854,6 +12642,7 @@ void _initialize_dwarf2_read (void);
void
_initialize_dwarf2_read (void)
{

View File

@ -14,7 +14,7 @@ Version: 7.0
# 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: 4%{?_with_upstream:.upstream}%{?dist}
Release: 5%{?_with_upstream:.upstream}%{?dist}
License: GPLv3+
Group: Development/Debuggers
@ -56,7 +56,7 @@ Source3: gdb-gstack.man
# libstdc++ pretty printers from GCC SVN HEAD (4.5 experimental).
%define libstdcxxpython libstdc++-v3-python-r151798
Source4: %{libstdcxxpython}.tar.xz
Source4: %{libstdcxxpython}.tar.bz2
# Work around out-of-date dejagnu that does not have KFAIL
Patch1: gdb-6.3-rh-dummykfail-20041202.patch
@ -449,7 +449,7 @@ This package provides a program that allows you to run GDB on a different machin
%setup -q -n %{gdb_src}
# libstdc++ pretty printers.
xz -dc %{SOURCE4} | tar xf -
tar xjf %{SOURCE4}
# Files have `# <number> <file>' statements breaking VPATH / find-debuginfo.sh .
rm -f gdb/ada-exp.c gdb/ada-lex.c gdb/c-exp.c gdb/cp-name-parser.c gdb/f-exp.c
@ -642,7 +642,14 @@ CFLAGS="$CFLAGS -O0 -ggdb2"
%else
--without-python \
%endif
$(: Workaround rpm.org#76, BZ 508193 on recent OSes. ) \
$(: RHEL-5 was the last not providing %{dist}. ) \
$(: RHEL-5 librpm has incompatible API. ) \
%if 0%{!?dist:1}
--without-rpm \
%else
--with-rpm=librpm.so.0 \
%endif
%ifarch ia64
--with-libunwind \
%else
@ -865,6 +872,10 @@ fi
%endif
%changelog
* Fri Oct 23 2009 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.0-5
- Make the package buildable on RHEL-5/CentOS-5 (without librpm there).
- archer-jankratochvil-fedora12 commit: 5b73ea6a0f74e63db3b504792fc1d37f548bdf5c
* Fri Oct 23 2009 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.0-4
- Fix rpm --excludedocs (BZ 515998).

View File

@ -1,2 +1,2 @@
1e3a26040dcdd3579d75967085eb92b9 libstdc++-v3-python-r151798.tar.xz
3386a7b69c010785c920ffc1e9cb890a gdb-7.0.tar.bz2
7507540c50a1edeb2fc22a37bc4a08b8 libstdc++-v3-python-r151798.tar.bz2