diff --git a/.gitignore b/.gitignore index ed12a9d..5910984 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/gdb-7.2.50.20101231.tar.bz2 +/gdb-7.2.50.20110104.tar.bz2 diff --git a/gdb-6.6-buildid-locate.patch b/gdb-6.6-buildid-locate.patch index ff134f1..19cb8ad 100644 --- a/gdb-6.6-buildid-locate.patch +++ b/gdb-6.6-buildid-locate.patch @@ -1,7 +1,7 @@ -Index: gdb-7.1.90.20100711/gdb/corelow.c +Index: gdb-7.2.50.20110104/gdb/corelow.c =================================================================== ---- gdb-7.1.90.20100711.orig/gdb/corelow.c 2010-05-14 01:53:32.000000000 +0200 -+++ gdb-7.1.90.20100711/gdb/corelow.c 2010-07-12 11:07:33.000000000 +0200 +--- gdb-7.2.50.20110104.orig/gdb/corelow.c 2011-01-01 16:32:59.000000000 +0100 ++++ gdb-7.2.50.20110104/gdb/corelow.c 2011-01-04 06:15:49.000000000 +0100 @@ -47,6 +47,9 @@ #include "filenames.h" #include "progspace.h" @@ -12,8 +12,8 @@ Index: gdb-7.1.90.20100711/gdb/corelow.c #ifndef O_LARGEFILE -@@ -289,6 +292,52 @@ add_to_thread_list (bfd *abfd, asection - inferior_ptid = ptid; /* Yes, make it current */ +@@ -277,6 +280,52 @@ add_to_thread_list (bfd *abfd, asection + inferior_ptid = ptid; /* Yes, make it current. */ } +static int build_id_core_loads = 1; @@ -65,7 +65,7 @@ Index: gdb-7.1.90.20100711/gdb/corelow.c /* This routine opens and sets up the core file bfd. */ static void -@@ -386,6 +435,12 @@ core_open (char *filename, int from_tty) +@@ -377,6 +426,12 @@ core_open (char *filename, int from_tty) push_target (&core_ops); discard_cleanups (old_chain); @@ -78,7 +78,7 @@ Index: gdb-7.1.90.20100711/gdb/corelow.c /* Do this before acknowledging the inferior, so if post_create_inferior throws (can happen easilly if you're loading a core file with the wrong exec), we aren't left with threads -@@ -924,4 +979,11 @@ _initialize_corelow (void) +@@ -930,4 +985,11 @@ _initialize_corelow (void) init_core_ops (); add_target (&core_ops); @@ -90,11 +90,11 @@ Index: gdb-7.1.90.20100711/gdb/corelow.c + NULL, NULL, NULL, + &setlist, &showlist); } -Index: gdb-7.1.90.20100711/gdb/doc/gdb.texinfo +Index: gdb-7.2.50.20110104/gdb/doc/gdb.texinfo =================================================================== ---- gdb-7.1.90.20100711.orig/gdb/doc/gdb.texinfo 2010-07-12 10:59:30.000000000 +0200 -+++ gdb-7.1.90.20100711/gdb/doc/gdb.texinfo 2010-07-12 11:05:57.000000000 +0200 -@@ -14980,6 +14980,27 @@ information files. +--- gdb-7.2.50.20110104.orig/gdb/doc/gdb.texinfo 2011-01-04 06:15:02.000000000 +0100 ++++ gdb-7.2.50.20110104/gdb/doc/gdb.texinfo 2011-01-04 06:15:14.000000000 +0100 +@@ -15267,6 +15267,27 @@ information files. @end table @@ -122,11 +122,11 @@ Index: gdb-7.1.90.20100711/gdb/doc/gdb.texinfo @cindex @code{.gnu_debuglink} sections @cindex debug link sections A debug link is a special section of the executable file named -Index: gdb-7.1.90.20100711/gdb/solib-svr4.c +Index: gdb-7.2.50.20110104/gdb/solib-svr4.c =================================================================== ---- gdb-7.1.90.20100711.orig/gdb/solib-svr4.c 2010-07-12 10:00:56.000000000 +0200 -+++ gdb-7.1.90.20100711/gdb/solib-svr4.c 2010-07-12 11:05:57.000000000 +0200 -@@ -1181,9 +1181,49 @@ svr4_current_sos (void) +--- gdb-7.2.50.20110104.orig/gdb/solib-svr4.c 2011-01-04 06:15:01.000000000 +0100 ++++ gdb-7.2.50.20110104/gdb/solib-svr4.c 2011-01-04 06:15:14.000000000 +0100 +@@ -1179,9 +1179,49 @@ svr4_current_sos (void) safe_strerror (errcode)); else { @@ -179,10 +179,10 @@ Index: gdb-7.1.90.20100711/gdb/solib-svr4.c } xfree (buffer); -Index: gdb-7.1.90.20100711/gdb/elfread.c +Index: gdb-7.2.50.20110104/gdb/elfread.c =================================================================== ---- gdb-7.1.90.20100711.orig/gdb/elfread.c 2010-07-12 10:00:56.000000000 +0200 -+++ gdb-7.1.90.20100711/gdb/elfread.c 2010-07-12 11:30:30.000000000 +0200 +--- gdb-7.2.50.20110104.orig/gdb/elfread.c 2011-01-04 06:15:01.000000000 +0100 ++++ gdb-7.2.50.20110104/gdb/elfread.c 2011-01-04 06:15:14.000000000 +0100 @@ -38,6 +38,10 @@ #include "demangle.h" #include "psympriv.h" @@ -194,7 +194,7 @@ Index: gdb-7.1.90.20100711/gdb/elfread.c extern void _initialize_elfread (void); -@@ -818,16 +822,65 @@ resolve_gnu_ifunc (const char *function_ +@@ -821,16 +825,65 @@ resolve_gnu_ifunc (const char *function_ return 0; } @@ -262,7 +262,7 @@ Index: gdb-7.1.90.20100711/gdb/elfread.c { struct build_id *retval; -@@ -843,6 +896,348 @@ build_id_bfd_get (bfd *abfd) +@@ -846,6 +899,348 @@ build_id_bfd_get (bfd *abfd) return retval; } @@ -611,7 +611,7 @@ Index: gdb-7.1.90.20100711/gdb/elfread.c /* Return if FILENAME has NT_GNU_BUILD_ID matching the CHECK value. */ static int -@@ -857,7 +1252,7 @@ build_id_verify (const char *filename, s +@@ -860,7 +1255,7 @@ build_id_verify (const char *filename, s if (abfd == NULL) return 0; @@ -620,7 +620,7 @@ Index: gdb-7.1.90.20100711/gdb/elfread.c if (found == NULL) warning (_("File \"%s\" has no build-id, file skipped"), filename); -@@ -874,14 +1269,16 @@ build_id_verify (const char *filename, s +@@ -877,14 +1272,16 @@ build_id_verify (const char *filename, s return retval; } @@ -641,7 +641,7 @@ Index: gdb-7.1.90.20100711/gdb/elfread.c /* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will cause "/.build-id/..." lookups. */ -@@ -912,7 +1309,10 @@ build_id_to_debug_filename (struct build +@@ -915,7 +1312,10 @@ build_id_to_debug_filename (struct build *s++ = '/'; while (size-- > 0) s += sprintf (s, "%02x", (unsigned) *data++); @@ -653,7 +653,7 @@ Index: gdb-7.1.90.20100711/gdb/elfread.c /* lrealpath() is expensive even for the usually non-existent files. */ if (access (link, F_OK) == 0) -@@ -925,26 +1325,201 @@ build_id_to_debug_filename (struct build +@@ -928,26 +1328,201 @@ build_id_to_debug_filename (struct build } if (retval != NULL) @@ -859,7 +859,7 @@ Index: gdb-7.1.90.20100711/gdb/elfread.c xfree (build_id); /* Prevent looping on a stripped .debug file. */ if (build_id_name != NULL && strcmp (build_id_name, objfile->name) == 0) -@@ -954,7 +1529,7 @@ find_separate_debug_file_by_buildid (str +@@ -957,7 +1532,7 @@ find_separate_debug_file_by_buildid (str xfree (build_id_name); } else if (build_id_name != NULL) @@ -868,7 +868,7 @@ Index: gdb-7.1.90.20100711/gdb/elfread.c } return NULL; } -@@ -1131,9 +1706,10 @@ elf_symfile_read (struct objfile *objfil +@@ -1138,9 +1713,10 @@ elf_symfile_read (struct objfile *objfil `.gnu_debuglink' may no longer be present with `.note.gnu.build-id'. */ if (!objfile_has_partial_symbols (objfile)) { @@ -881,7 +881,7 @@ Index: gdb-7.1.90.20100711/gdb/elfread.c if (debugfile == NULL) debugfile = find_separate_debug_file_by_debuglink (objfile); -@@ -1145,6 +1721,12 @@ elf_symfile_read (struct objfile *objfil +@@ -1152,6 +1728,12 @@ elf_symfile_read (struct objfile *objfil symbol_file_add_separate (abfd, symfile_flags, objfile); xfree (debugfile); } @@ -894,7 +894,7 @@ Index: gdb-7.1.90.20100711/gdb/elfread.c } } -@@ -1304,4 +1886,16 @@ void +@@ -1327,4 +1909,16 @@ void _initialize_elfread (void) { add_symtab_fns (&elf_sym_fns); @@ -911,11 +911,11 @@ Index: gdb-7.1.90.20100711/gdb/elfread.c + + observer_attach_executable_changed (debug_print_executable_changed); } -Index: gdb-7.1.90.20100711/gdb/symfile.h +Index: gdb-7.2.50.20110104/gdb/symfile.h =================================================================== ---- gdb-7.1.90.20100711.orig/gdb/symfile.h 2010-05-08 06:58:45.000000000 +0200 -+++ gdb-7.1.90.20100711/gdb/symfile.h 2010-07-12 11:06:18.000000000 +0200 -@@ -562,6 +562,13 @@ void free_symfile_segment_data (struct s +--- gdb-7.2.50.20110104.orig/gdb/symfile.h 2011-01-01 16:33:16.000000000 +0100 ++++ gdb-7.2.50.20110104/gdb/symfile.h 2011-01-04 06:15:14.000000000 +0100 +@@ -553,6 +553,13 @@ void free_symfile_segment_data (struct s extern struct cleanup *increment_reading_symtab (void); @@ -929,11 +929,11 @@ Index: gdb-7.1.90.20100711/gdb/symfile.h /* From dwarf2read.c */ extern int dwarf2_has_info (struct objfile *); -Index: gdb-7.1.90.20100711/gdb/testsuite/lib/gdb.exp +Index: gdb-7.2.50.20110104/gdb/testsuite/lib/gdb.exp =================================================================== ---- gdb-7.1.90.20100711.orig/gdb/testsuite/lib/gdb.exp 2010-07-12 10:00:56.000000000 +0200 -+++ gdb-7.1.90.20100711/gdb/testsuite/lib/gdb.exp 2010-07-12 11:05:57.000000000 +0200 -@@ -1353,6 +1353,16 @@ proc default_gdb_start { } { +--- gdb-7.2.50.20110104.orig/gdb/testsuite/lib/gdb.exp 2011-01-04 06:15:01.000000000 +0100 ++++ gdb-7.2.50.20110104/gdb/testsuite/lib/gdb.exp 2011-01-04 06:15:14.000000000 +0100 +@@ -1390,6 +1390,16 @@ proc default_gdb_start { } { warning "Couldn't set the width to 0." } } @@ -950,10 +950,10 @@ Index: gdb-7.1.90.20100711/gdb/testsuite/lib/gdb.exp return 0; } -Index: gdb-7.1.90.20100711/gdb/testsuite/lib/mi-support.exp +Index: gdb-7.2.50.20110104/gdb/testsuite/lib/mi-support.exp =================================================================== ---- gdb-7.1.90.20100711.orig/gdb/testsuite/lib/mi-support.exp 2010-03-15 04:43:13.000000000 +0100 -+++ gdb-7.1.90.20100711/gdb/testsuite/lib/mi-support.exp 2010-07-12 11:05:57.000000000 +0200 +--- gdb-7.2.50.20110104.orig/gdb/testsuite/lib/mi-support.exp 2011-01-01 16:33:52.000000000 +0100 ++++ gdb-7.2.50.20110104/gdb/testsuite/lib/mi-support.exp 2011-01-04 06:15:14.000000000 +0100 @@ -221,6 +221,16 @@ proc default_mi_gdb_start { args } { } } @@ -971,11 +971,11 @@ Index: gdb-7.1.90.20100711/gdb/testsuite/lib/mi-support.exp detect_async -Index: gdb-7.1.90.20100711/gdb/objfiles.h +Index: gdb-7.2.50.20110104/gdb/objfiles.h =================================================================== ---- gdb-7.1.90.20100711.orig/gdb/objfiles.h 2010-04-14 19:26:11.000000000 +0200 -+++ gdb-7.1.90.20100711/gdb/objfiles.h 2010-07-12 11:07:08.000000000 +0200 -@@ -426,6 +426,10 @@ struct objfile +--- gdb-7.2.50.20110104.orig/gdb/objfiles.h 2011-01-01 16:33:12.000000000 +0100 ++++ gdb-7.2.50.20110104/gdb/objfiles.h 2011-01-04 06:15:14.000000000 +0100 +@@ -433,6 +433,10 @@ struct objfile #define OBJF_USERLOADED (1 << 3) /* User loaded */ diff --git a/gdb-archer.patch b/gdb-archer.patch index 06e76a0..b8e47a9 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 18d3d5d564eac7ad10bc972c957e6159a4276d3f +commit 2be613ebefe3f3c2a5bb329c207d435024af7a2b branch `archer' - the merge of branches: archer-jankratochvil-vla @@ -44,7 +44,7 @@ index 3efff2e..99097bf 100644 return 1; diff --git a/gdb/amd64-linux-nat.c b/gdb/amd64-linux-nat.c -index 16e97a2..784a476 100644 +index 877072c..2154b73 100644 --- a/gdb/amd64-linux-nat.c +++ b/gdb/amd64-linux-nat.c @@ -265,18 +265,11 @@ amd64_linux_store_inferior_registers (struct target_ops *ops, @@ -266,10 +266,10 @@ index 16e97a2..784a476 100644 diff --git a/gdb/block.c b/gdb/block.c -index f932d41..6e2cd88 100644 +index 776ae53..3544cf2 100644 --- a/gdb/block.c +++ b/gdb/block.c -@@ -321,3 +321,21 @@ allocate_block (struct obstack *obstack) +@@ -322,3 +322,21 @@ allocate_block (struct obstack *obstack) return bl; } @@ -292,10 +292,10 @@ index f932d41..6e2cd88 100644 + return SYMBOL_SYMTAB (func)->objfile; +} diff --git a/gdb/block.h b/gdb/block.h -index 7eedb6c..a517e80 100644 +index 07d5bc7..fad89b1 100644 --- a/gdb/block.h +++ b/gdb/block.h -@@ -166,4 +166,6 @@ extern const struct block *block_global_block (const struct block *block); +@@ -167,4 +167,6 @@ extern const struct block *block_global_block (const struct block *block); extern struct block *allocate_block (struct obstack *obstack); @@ -303,7 +303,7 @@ index 7eedb6c..a517e80 100644 + #endif /* BLOCK_H */ diff --git a/gdb/blockframe.c b/gdb/blockframe.c -index 366bedd..97f418a 100644 +index 4cfc6e6..dc64d51 100644 --- a/gdb/blockframe.c +++ b/gdb/blockframe.c @@ -160,6 +160,7 @@ static CORE_ADDR cache_pc_function_low = 0; @@ -365,7 +365,7 @@ index 366bedd..97f418a 100644 /* Return the innermost stack frame executing inside of BLOCK, or NULL diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c -index 809eb53..8f92c4e 100644 +index 785155c..63d736f 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -62,6 +62,7 @@ @@ -1026,10 +1026,10 @@ index 809eb53..8f92c4e 100644 + observer_attach_mark_used (breakpoint_types_mark_used); } diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h -index bfae8d9..a058e46 100644 +index 2d815c2..66b3ece 100644 --- a/gdb/breakpoint.h +++ b/gdb/breakpoint.h -@@ -147,6 +147,9 @@ enum bptype +@@ -148,6 +148,9 @@ enum bptype /* Event for JIT compiled code generation or deletion. */ bp_jit_event, @@ -1038,16 +1038,18 @@ index bfae8d9..a058e46 100644 + bp_gnu_ifunc_resolver_return, }; - /* States of enablement of breakpoint. */ + /* States of enablement of breakpoint. */ diff --git a/gdb/c-typeprint.c b/gdb/c-typeprint.c -index 04f8127..2e29eb2 100644 +index feee86d..363c62b 100644 --- a/gdb/c-typeprint.c +++ b/gdb/c-typeprint.c -@@ -579,7 +579,13 @@ c_type_print_varspec_suffix (struct type *type, struct ui_file *stream, +@@ -609,9 +609,14 @@ c_type_print_varspec_suffix (struct type *type, fprintf_filtered (stream, ")"); fprintf_filtered (stream, "["); - if (get_array_bounds (type, &low_bound, &high_bound)) +- fprintf_filtered (stream, "%d", +- (int) (high_bound - low_bound + 1)); + if (TYPE_RANGE_DATA (TYPE_INDEX_TYPE (type))->high.kind + != RANGE_BOUND_KIND_CONSTANT) + { @@ -1055,11 +1057,12 @@ index 04f8127..2e29eb2 100644 + fprintf_filtered (stream, "variable"); + } + else if (get_array_bounds (type, &low_bound, &high_bound)) - fprintf_filtered (stream, "%d", (int) (high_bound - low_bound + 1)); ++ fprintf_filtered (stream, "%d", (int) (high_bound - low_bound + 1)); fprintf_filtered (stream, "]"); + c_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, diff --git a/gdb/defs.h b/gdb/defs.h -index 489de74..335d3f5 100644 +index 9d8f6fc..229378a 100644 --- a/gdb/defs.h +++ b/gdb/defs.h @@ -398,6 +398,8 @@ extern struct cleanup *make_cleanup_restore_page_info (void); @@ -1217,7 +1220,7 @@ index e19b8ed..343e160 100644 This observer is used for internal testing. Do not use. See testsuite/gdb.gdb/observer.exp. diff --git a/gdb/dwarf2expr.c b/gdb/dwarf2expr.c -index 29bfcf4..c339378 100644 +index 4ef6d55..1a3580a 100644 --- a/gdb/dwarf2expr.c +++ b/gdb/dwarf2expr.c @@ -900,6 +900,13 @@ execute_stack_op (struct dwarf_expr_context *ctx, @@ -1235,7 +1238,7 @@ index 29bfcf4..c339378 100644 error (_("Unhandled dwarf expression opcode 0x%x"), op); } diff --git a/gdb/dwarf2expr.h b/gdb/dwarf2expr.h -index 68cc667..5b5f29c 100644 +index 3858dc8..a172585 100644 --- a/gdb/dwarf2expr.h +++ b/gdb/dwarf2expr.h @@ -114,9 +114,15 @@ struct dwarf_expr_context @@ -1256,7 +1259,7 @@ index 68cc667..5b5f29c 100644 /* The current depth of dwarf expression recursion, via DW_OP_call*, DW_OP_fbreg, DW_OP_push_object_address, etc., and the maximum diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c -index f0e08c7..d5c0c36 100644 +index 12e4dac..943b37d 100644 --- a/gdb/dwarf2loc.c +++ b/gdb/dwarf2loc.c @@ -133,6 +133,9 @@ struct dwarf_expr_baton @@ -1582,7 +1585,7 @@ index f0e08c7..d5c0c36 100644 + missing_tracepoint_var_ref +}; diff --git a/gdb/dwarf2loc.h b/gdb/dwarf2loc.h -index e94346c..55beec2 100644 +index ee52506..6a77c3f 100644 --- a/gdb/dwarf2loc.h +++ b/gdb/dwarf2loc.h @@ -105,5 +105,14 @@ struct dwarf2_loclist_baton @@ -1601,7 +1604,7 @@ index e94346c..55beec2 100644 #endif /* dwarf2loc.h */ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c -index 80770f8..9908495 100644 +index 82a2f0b..327164c 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -1206,6 +1206,9 @@ static void fill_in_loclist_baton (struct dwarf2_cu *cu, @@ -2262,7 +2265,7 @@ index 80770f8..9908495 100644 initialized (if not already set). There are a few types where we should not be doing so, because the type-specific area is diff --git a/gdb/elfread.c b/gdb/elfread.c -index d607b87..2aa7dd9 100644 +index 5944eb0..9b283e1 100644 --- a/gdb/elfread.c +++ b/gdb/elfread.c @@ -37,6 +37,7 @@ @@ -2556,7 +2559,7 @@ index d607b87..2aa7dd9 100644 /* Add synthetic symbols - for instance, names for any PLT entries. */ diff --git a/gdb/eval.c b/gdb/eval.c -index 16e98ae..4fa4d5f 100644 +index fbd3698..56d51c8 100644 --- a/gdb/eval.c +++ b/gdb/eval.c @@ -44,6 +44,7 @@ @@ -2784,7 +2787,7 @@ index 16e98ae..4fa4d5f 100644 default: val = evaluate_subexp (NULL_TYPE, exp, pos, EVAL_AVOID_SIDE_EFFECTS); diff --git a/gdb/f-lang.h b/gdb/f-lang.h -index f5bb82d..29cf5ba 100644 +index 5c2692d..b52ae74 100644 --- a/gdb/f-lang.h +++ b/gdb/f-lang.h @@ -28,6 +28,10 @@ extern void f_error (char *); /* Defined in f-exp.y */ @@ -2799,7 +2802,7 @@ index f5bb82d..29cf5ba 100644 struct ui_file *, int, const struct value *, diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c -index d35a255..dec81d5 100644 +index 6618188..968de7a 100644 --- a/gdb/f-typeprint.c +++ b/gdb/f-typeprint.c @@ -32,7 +32,7 @@ @@ -2867,7 +2870,7 @@ index d35a255..dec81d5 100644 { case TYPE_CODE_ARRAY: diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c -index e27f79e..93322a2 100644 +index 5db2ed7..e104e21 100644 --- a/gdb/f-valprint.c +++ b/gdb/f-valprint.c @@ -54,15 +54,17 @@ int f77_array_offset_tbl[MAX_FORTRAN_DIMS + 1][2]; @@ -3005,7 +3008,7 @@ index e27f79e..93322a2 100644 switch (TYPE_CODE (type)) { diff --git a/gdb/findvar.c b/gdb/findvar.c -index e0ca12c..de6311a 100644 +index 5f97422..2c2670e 100644 --- a/gdb/findvar.c +++ b/gdb/findvar.c @@ -35,6 +35,7 @@ @@ -3216,7 +3219,7 @@ index e0ca12c..de6311a 100644 else { diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c -index b651098..70269d6 100644 +index fac1e98..cbc3aeb 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -39,6 +39,9 @@ @@ -4146,7 +4149,7 @@ index b651098..70269d6 100644 add_setshow_zinteger_cmd ("overload", no_class, &overload_debug, _("\ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h -index 1ce2d91..133f583 100644 +index 9898991..652994c 100644 --- a/gdb/gdbtypes.h +++ b/gdb/gdbtypes.h @@ -170,6 +170,7 @@ enum type_flag_value @@ -4423,7 +4426,7 @@ index 1ce2d91..133f583 100644 + #endif /* GDBTYPES_H */ diff --git a/gdb/i386-linux-nat.c b/gdb/i386-linux-nat.c -index 4fce1ac..7b6961e 100644 +index ed555ef..6b5c458 100644 --- a/gdb/i386-linux-nat.c +++ b/gdb/i386-linux-nat.c @@ -633,22 +633,13 @@ i386_linux_store_inferior_registers (struct target_ops *ops, @@ -4631,7 +4634,7 @@ index 4fce1ac..7b6961e 100644 diff --git a/gdb/i386-nat.c b/gdb/i386-nat.c -index eaa3644..7f32bd2 100644 +index 900fb40..f28c45b 100644 --- a/gdb/i386-nat.c +++ b/gdb/i386-nat.c @@ -25,6 +25,7 @@ @@ -4986,7 +4989,7 @@ index eaa3644..7f32bd2 100644 void diff --git a/gdb/i386-nat.h b/gdb/i386-nat.h -index 7317e7d..65cd326 100644 +index 10fdc3b..ed6de56 100644 --- a/gdb/i386-nat.h +++ b/gdb/i386-nat.h @@ -78,6 +78,28 @@ struct i386_dr_low_type @@ -5019,7 +5022,7 @@ index 7317e7d..65cd326 100644 rather than setting it directly to check that the length is only set once. It also enables the 'maint set/show show-debug-regs' diff --git a/gdb/infcall.c b/gdb/infcall.c -index 6eb1bbf..7323c4b 100644 +index 85b814a..f0cb929 100644 --- a/gdb/infcall.c +++ b/gdb/infcall.c @@ -225,6 +225,56 @@ value_arg_coerce (struct gdbarch *gdbarch, struct value *arg, @@ -5133,7 +5136,7 @@ index 6eb1bbf..7323c4b 100644 /* Handle the case of functions lacking debugging info. Their values are characters since their addresses are char */ diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c -index 56490cc..c4d1c28 100644 +index 146bb8c..9e08eee 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -1243,6 +1243,64 @@ iterate_over_lwps (ptid_t filter, @@ -5202,7 +5205,7 @@ index 56490cc..c4d1c28 100644 another indicated by NEW_PTID. We can only switch single-threaded applications, so we only create one new LWP, and the previous list diff --git a/gdb/linux-nat.h b/gdb/linux-nat.h -index 64393fd..a053cbd 100644 +index 2987fab..0e5f353 100644 --- a/gdb/linux-nat.h +++ b/gdb/linux-nat.h @@ -139,6 +139,11 @@ struct lwp_info *iterate_over_lwps (ptid_t filter, @@ -5218,7 +5221,7 @@ index 64393fd..a053cbd 100644 override it with local methods. */ struct target_ops * linux_target (void); diff --git a/gdb/mi/mi-cmd-var.c b/gdb/mi/mi-cmd-var.c -index 310ade9..d8710a1 100644 +index 1478cb0..c4492a7 100644 --- a/gdb/mi/mi-cmd-var.c +++ b/gdb/mi/mi-cmd-var.c @@ -702,7 +702,6 @@ mi_cmd_var_update (char *command, char **argv, int argc) @@ -5230,10 +5233,10 @@ index 310ade9..d8710a1 100644 varobj_update_one (var, print_values, 1 /* explicit */); diff --git a/gdb/minsyms.c b/gdb/minsyms.c -index 0a57e77..6be74df 100644 +index e870954..0436b57 100644 --- a/gdb/minsyms.c +++ b/gdb/minsyms.c -@@ -337,8 +337,9 @@ lookup_minimal_symbol_text (const char *name, struct objfile *objf) +@@ -338,8 +338,9 @@ lookup_minimal_symbol_text (const char *name, struct objfile *objf) msymbol = msymbol->hash_next) { if (strcmp (SYMBOL_LINKAGE_NAME (msymbol), name) == 0 && @@ -5245,7 +5248,7 @@ index 0a57e77..6be74df 100644 { switch (MSYMBOL_TYPE (msymbol)) { -@@ -700,6 +701,16 @@ lookup_minimal_symbol_by_pc (CORE_ADDR pc) +@@ -701,6 +702,16 @@ lookup_minimal_symbol_by_pc (CORE_ADDR pc) return lookup_minimal_symbol_by_pc_section (pc, NULL); } @@ -5262,7 +5265,7 @@ index 0a57e77..6be74df 100644 /* Find the minimal symbol named NAME, and return both the minsym struct and its objfile. This only checks the linkage name. Sets *OBJFILE_P and returns the minimal symbol, if it is found. If it -@@ -769,6 +780,7 @@ prim_record_minimal_symbol (const char *name, CORE_ADDR address, +@@ -770,6 +781,7 @@ prim_record_minimal_symbol (const char *name, CORE_ADDR address, switch (ms_type) { case mst_text: @@ -5270,7 +5273,7 @@ index 0a57e77..6be74df 100644 case mst_file_text: case mst_solib_trampoline: section = SECT_OFF_TEXT (objfile); -@@ -1234,7 +1246,8 @@ find_solib_trampoline_target (struct frame_info *frame, CORE_ADDR pc) +@@ -1235,7 +1247,8 @@ find_solib_trampoline_target (struct frame_info *frame, CORE_ADDR pc) { ALL_MSYMBOLS (objfile, msymbol) { @@ -5281,7 +5284,7 @@ index 0a57e77..6be74df 100644 SYMBOL_LINKAGE_NAME (tsymbol)) == 0) return SYMBOL_VALUE_ADDRESS (msymbol); diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c -index 47663bd..d9fb878 100644 +index bd01fea..77b1033 100644 --- a/gdb/p-valprint.c +++ b/gdb/p-valprint.c @@ -38,6 +38,7 @@ @@ -5358,7 +5361,7 @@ index 47663bd..d9fb878 100644 } diff --git a/gdb/parse.c b/gdb/parse.c -index 18038ed..1438ae0 100644 +index daee633..1f9a0d1 100644 --- a/gdb/parse.c +++ b/gdb/parse.c @@ -487,9 +487,21 @@ write_exp_msymbol (struct minimal_symbol *msymbol) @@ -5510,7 +5513,7 @@ index 18038ed..1438ae0 100644 void diff --git a/gdb/parser-defs.h b/gdb/parser-defs.h -index 1625575..d072f86 100644 +index 95dd799..42266df 100644 --- a/gdb/parser-defs.h +++ b/gdb/parser-defs.h @@ -194,6 +194,8 @@ extern void operator_length_standard (const struct expression *, int, int *, @@ -5540,10 +5543,10 @@ index 1625575..d072f86 100644 + #endif /* PARSER_DEFS_H */ diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c -index 18ddee7..ebb0022 100644 +index ca7312b..58696d3 100644 --- a/gdb/ppc-linux-nat.c +++ b/gdb/ppc-linux-nat.c -@@ -1620,12 +1620,18 @@ booke_remove_point (struct ppc_hw_breakpoint *b, int tid) +@@ -1621,12 +1621,18 @@ booke_remove_point (struct ppc_hw_breakpoint *b, int tid) hw_breaks[i].hw_break = NULL; } @@ -5564,7 +5567,7 @@ index 18ddee7..ebb0022 100644 struct ppc_hw_breakpoint p; if (!have_ptrace_booke_interface ()) -@@ -1639,18 +1645,23 @@ ppc_linux_insert_hw_breakpoint (struct gdbarch *gdbarch, +@@ -1640,18 +1646,23 @@ ppc_linux_insert_hw_breakpoint (struct gdbarch *gdbarch, p.addr2 = 0; p.condition_value = 0; @@ -5592,7 +5595,7 @@ index 18ddee7..ebb0022 100644 struct ppc_hw_breakpoint p; if (!have_ptrace_booke_interface ()) -@@ -1664,8 +1675,7 @@ ppc_linux_remove_hw_breakpoint (struct gdbarch *gdbarch, +@@ -1665,8 +1676,7 @@ ppc_linux_remove_hw_breakpoint (struct gdbarch *gdbarch, p.addr2 = 0; p.condition_value = 0; @@ -5602,7 +5605,7 @@ index 18ddee7..ebb0022 100644 return 0; } -@@ -1878,12 +1888,19 @@ ppc_linux_can_accel_watchpoint_condition (CORE_ADDR addr, int len, int rw, +@@ -1879,12 +1889,19 @@ ppc_linux_can_accel_watchpoint_condition (CORE_ADDR addr, int len, int rw, && check_condition (addr, cond, &data_value)); } @@ -5624,7 +5627,7 @@ index 18ddee7..ebb0022 100644 int ret = -1; if (have_ptrace_booke_interface ()) -@@ -1907,8 +1924,7 @@ ppc_linux_insert_watchpoint (CORE_ADDR addr, int len, int rw, +@@ -1908,8 +1925,7 @@ ppc_linux_insert_watchpoint (CORE_ADDR addr, int len, int rw, p.addr = (uint64_t) addr; p.addr2 = 0; @@ -5634,7 +5637,7 @@ index 18ddee7..ebb0022 100644 ret = 0; } -@@ -1951,12 +1967,8 @@ ppc_linux_insert_watchpoint (CORE_ADDR addr, int len, int rw, +@@ -1952,12 +1968,8 @@ ppc_linux_insert_watchpoint (CORE_ADDR addr, int len, int rw, saved_dabr_value = dabr_value; @@ -5648,7 +5651,7 @@ index 18ddee7..ebb0022 100644 } return ret; -@@ -1966,8 +1978,6 @@ static int +@@ -1967,8 +1979,6 @@ static int ppc_linux_remove_watchpoint (CORE_ADDR addr, int len, int rw, struct expression *cond) { @@ -5657,7 +5660,7 @@ index 18ddee7..ebb0022 100644 int ret = -1; if (have_ptrace_booke_interface ()) -@@ -1991,20 +2001,16 @@ ppc_linux_remove_watchpoint (CORE_ADDR addr, int len, int rw, +@@ -1992,20 +2002,16 @@ ppc_linux_remove_watchpoint (CORE_ADDR addr, int len, int rw, p.addr = (uint64_t) addr; p.addr2 = 0; @@ -5681,7 +5684,7 @@ index 18ddee7..ebb0022 100644 return ret; diff --git a/gdb/printcmd.c b/gdb/printcmd.c -index 5586767..144e851 100644 +index eb3c3f9..ed8d67a 100644 --- a/gdb/printcmd.c +++ b/gdb/printcmd.c @@ -971,6 +971,11 @@ print_command_1 (char *exp, int inspect, int voidprint) @@ -5727,7 +5730,7 @@ index 5586767..144e851 100644 + observer_attach_mark_used (print_types_mark_used); } diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c -index 8232436..e9fc8aa 100644 +index 9a6b077..656d3a1 100644 --- a/gdb/python/py-type.c +++ b/gdb/python/py-type.c @@ -29,6 +29,8 @@ @@ -5913,7 +5916,7 @@ index 8232436..e9fc8aa 100644 diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c -index 3ade512..70e00e9 100644 +index adb7658..1e1f7e9 100644 --- a/gdb/python/py-value.c +++ b/gdb/python/py-value.c @@ -28,6 +28,7 @@ @@ -5952,7 +5955,7 @@ index 3ade512..70e00e9 100644 diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c -index 60efc4a..824a076 100644 +index ef04dd7..512b6e4 100644 --- a/gdb/solib-svr4.c +++ b/gdb/solib-svr4.c @@ -1276,7 +1276,8 @@ svr4_in_dynsym_resolve_code (CORE_ADDR pc) @@ -5966,7 +5969,7 @@ index 60efc4a..824a076 100644 /* Given an executable's ABFD and target, compute the entry-point diff --git a/gdb/stack.c b/gdb/stack.c -index 1e0c2e6..23f7f56 100644 +index 1d23806..c20df41 100644 --- a/gdb/stack.c +++ b/gdb/stack.c @@ -366,6 +366,7 @@ print_frame_args (struct symbol *func, struct frame_info *frame, @@ -5992,7 +5995,7 @@ index 1e0c2e6..23f7f56 100644 } else diff --git a/gdb/symmisc.c b/gdb/symmisc.c -index ef63216..1cc9082 100644 +index b292c3b..4db6629 100644 --- a/gdb/symmisc.c +++ b/gdb/symmisc.c @@ -264,6 +264,9 @@ dump_msymbols (struct objfile *objfile, struct ui_file *outfile) @@ -6006,7 +6009,7 @@ index ef63216..1cc9082 100644 ms_type = 'S'; break; diff --git a/gdb/symtab.c b/gdb/symtab.c -index a6023b9..9d577b0 100644 +index 4e68f1b..e6e91ba 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -2988,7 +2988,7 @@ search_symbols (char *regexp, domain_enum kind, int nfiles, char *files[], @@ -6019,7 +6022,7 @@ index a6023b9..9d577b0 100644 enum minimal_symbol_type ourtype2; enum minimal_symbol_type ourtype3; diff --git a/gdb/symtab.h b/gdb/symtab.h -index a4032f8..944dd33 100644 +index e85b432..6d97d6e 100644 --- a/gdb/symtab.h +++ b/gdb/symtab.h @@ -290,6 +290,9 @@ enum minimal_symbol_type @@ -7234,7 +7237,7 @@ index 0000000..b05411e + +gdb_test "ptype array" "type = char \\\[78\\\]" "second: ptype array" diff --git a/gdb/testsuite/gdb.base/arrayidx.c b/gdb/testsuite/gdb.base/arrayidx.c -index ecc3289..f79ad40 100644 +index 6c158bf..739ce34 100644 --- a/gdb/testsuite/gdb.base/arrayidx.c +++ b/gdb/testsuite/gdb.base/arrayidx.c @@ -17,6 +17,13 @@ @@ -7252,7 +7255,7 @@ index ecc3289..f79ad40 100644 main (void) { diff --git a/gdb/testsuite/gdb.base/arrayidx.exp b/gdb/testsuite/gdb.base/arrayidx.exp -index 3a33618..f2e11dd 100644 +index d8ee5c0..de4ba75 100644 --- a/gdb/testsuite/gdb.base/arrayidx.exp +++ b/gdb/testsuite/gdb.base/arrayidx.exp @@ -57,4 +57,12 @@ gdb_test "print array" \ @@ -7377,10 +7380,10 @@ index 0000000..106271f +} diff --git a/gdb/testsuite/gdb.base/gnu-ifunc.exp b/gdb/testsuite/gdb.base/gnu-ifunc.exp new file mode 100644 -index 0000000..8ecf558 +index 0000000..de59785 --- /dev/null +++ b/gdb/testsuite/gdb.base/gnu-ifunc.exp -@@ -0,0 +1,110 @@ +@@ -0,0 +1,130 @@ +# Copyright (C) 2009, 2010 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify @@ -7401,12 +7404,17 @@ index 0000000..8ecf558 +} + +set testfile "gnu-ifunc" ++set executable ${testfile} +set srcfile ${testfile}.c -+set binfile ${objdir}/${subdir}/${testfile} ++set binfile ${objdir}/${subdir}/${executable} ++set staticexecutable ${executable}-static ++set staticbinfile ${objdir}/${subdir}/${staticexecutable} + +set libfile "${testfile}-lib" +set libsrc ${libfile}.c +set lib_so ${objdir}/${subdir}/${libfile}.so ++# $lib_o must not have {debug}, it would override the gnu-ifunc ELF markers. ++set lib_o ${objdir}/${subdir}/${libfile}.o + +# We need DWARF for the "final" function as we "step" into the function and GDB +# would step-over the "final" function if there would be no line number debug @@ -7430,14 +7438,16 @@ index 0000000..8ecf558 +} + +if { [gdb_compile_shlib ${srcdir}/${subdir}/$libsrc $lib_so $lib_opts] != "" -+ || [gdb_compile ${srcdir}/${subdir}/$srcfile $binfile executable $exec_opts] != ""} { ++ || [gdb_compile ${srcdir}/${subdir}/$srcfile $binfile executable $exec_opts] != "" ++ || [gdb_compile ${srcdir}/${subdir}/$libsrc $lib_o object {}] != "" ++ || [gdb_compile "${srcdir}/${subdir}/$srcfile $lib_o" $staticbinfile executable {debug}] != ""} { + untested "Could not compile either $libsrc or $srcfile." + return -1 +} + +# Start with a fresh gdb. + -+clean_restart $testfile ++clean_restart $executable +gdb_load_shlibs ${lib_so} + +if ![runto_main] then { @@ -7491,6 +7501,19 @@ index 0000000..8ecf558 + } +} +gdb_test "info sym $expect_out(1,string)" "gnu_ifunc in section .*" "info sym " ++ ++ ++# Test statically linked ifunc resolving during inferior start. ++# https://bugzilla.redhat.com/show_bug.cgi?id=624967 ++ ++if ![target_info exists gdb_stub] { ++ clean_restart $staticexecutable ++ ++ gdb_breakpoint "gnu_ifunc" ++ gdb_breakpoint "main" ++ gdb_run_cmd ++ gdb_test "" "Breakpoint \[0-9\]*, main .*" "static gnu_ifunc" ++} diff --git a/gdb/testsuite/gdb.base/internal-var-field-address.c b/gdb/testsuite/gdb.base/internal-var-field-address.c new file mode 100644 index 0000000..eeb7b85 @@ -10240,7 +10263,7 @@ index 0000000..31f7656 +extern void marker (void); +extern void forkoff (int nr); diff --git a/gdb/testsuite/lib/pascal.exp b/gdb/testsuite/lib/pascal.exp -index af0b00d..e1a8dc4 100644 +index 891da37..236c5ca 100644 --- a/gdb/testsuite/lib/pascal.exp +++ b/gdb/testsuite/lib/pascal.exp @@ -37,6 +37,9 @@ proc pascal_init {} { @@ -10275,7 +10298,7 @@ index af0b00d..e1a8dc4 100644 set pascal_init_done 1 } diff --git a/gdb/top.c b/gdb/top.c -index 45c9259..8856322 100644 +index 702e05b..a41cdc6 100644 --- a/gdb/top.c +++ b/gdb/top.c @@ -343,6 +343,7 @@ void @@ -10287,7 +10310,7 @@ index 45c9259..8856322 100644 /* With multiple threads running while the one we're examining is stopped, the dcache can get stale without us being able to detect diff --git a/gdb/typeprint.c b/gdb/typeprint.c -index ce9f551..5f9d739 100644 +index a1c44f2..036d939 100644 --- a/gdb/typeprint.c +++ b/gdb/typeprint.c @@ -36,6 +36,7 @@ @@ -10344,7 +10367,7 @@ index ce9f551..5f9d739 100644 static void diff --git a/gdb/utils.c b/gdb/utils.c -index 02c7a37..894be69 100644 +index 2b55449..6b481cd 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -2198,6 +2198,36 @@ set_batch_flag_and_make_cleanup_restore_page_info (void) @@ -10385,7 +10408,7 @@ index 02c7a37..894be69 100644 static void diff --git a/gdb/valarith.c b/gdb/valarith.c -index 6b212b2..c6b4843 100644 +index f200b2c..4921b54 100644 --- a/gdb/valarith.c +++ b/gdb/valarith.c @@ -165,12 +165,26 @@ value_subscript (struct value *array, LONGEST index) @@ -10479,7 +10502,7 @@ index 6b212b2..c6b4843 100644 } diff --git a/gdb/valops.c b/gdb/valops.c -index 7ea6315..ad3dacf 100644 +index c66c41e..8d76259 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -38,6 +38,7 @@ @@ -10628,7 +10651,7 @@ index 7ea6315..ad3dacf 100644 /* Given a value which is a function, return a value which is a pointer diff --git a/gdb/valprint.c b/gdb/valprint.c -index 5cba023..4ef5e5a 100644 +index 1b16f1f..eef7d61 100644 --- a/gdb/valprint.c +++ b/gdb/valprint.c @@ -36,6 +36,7 @@ @@ -10701,7 +10724,7 @@ index 5cba023..4ef5e5a 100644 /* Read LEN bytes of target memory at address MEMADDR, placing the diff --git a/gdb/value.c b/gdb/value.c -index c7de323..645fef2 100644 +index 58067e8..82efef0 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -39,6 +39,7 @@ @@ -10878,7 +10901,7 @@ index c7de323..645fef2 100644 + observer_attach_mark_used (value_types_mark_used); } diff --git a/gdb/value.h b/gdb/value.h -index cf089be..0fb89f1 100644 +index e637842..5f36aef 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -389,6 +389,10 @@ extern struct value *value_from_double (struct type *type, DOUBLEST num); @@ -10902,7 +10925,7 @@ index cf089be..0fb89f1 100644 /* User function handler. */ diff --git a/gdb/varobj.c b/gdb/varobj.c -index e87d399..0ea54f5 100644 +index d020fff..303ecdf 100644 --- a/gdb/varobj.c +++ b/gdb/varobj.c @@ -26,6 +26,8 @@ diff --git a/gdb-doc-system-readline.patch b/gdb-doc-system-readline.patch deleted file mode 100644 index 9218ce9..0000000 --- a/gdb-doc-system-readline.patch +++ /dev/null @@ -1,52 +0,0 @@ -http://sourceware.org/ml/gdb-patches/2011-01/msg00001.html -Subject: [patch] make info regression on --with-system-readline - -Hi, - -since: - [2/2] RFA: --with-system-readline -vs- gdb.texinfo - http://sourceware.org/ml/gdb-patches/2010-11/msg00270.html - -$ rm -rf gdb-7.2.50.20101231; tar xjf gdb-7.2.50.20101231.tar.bz2; cd gdb-7.2.50.20101231; CFLAGS= ./configure --with-system-readline; make; rm gdb/doc/gdb.info; make -C gdb/doc gdb.info --> -[...] -makeinfo -I ./../mi -I . \ - -o gdb.info ./gdb.texinfo -./gdb.texinfo:30521: @include `rluser.texi': No such file or directory. -./gdb.texinfo:30521: @include `inc-hist.texinfo': No such file or directory. -[...] -Fedora 14 x86_64 - -It is because GDBvn.texi has started to depend on the configure options. - -I will check it in in the case of no comments. - -Another issue is that GDBvn.texi and gdb-cfg.texi should not be distributed. -But that bug is a different one on top of this bug. That bug of a needless -files distribution is dependent on magic GDB `make dist' I do not know and -also that dist bug is not serious enough. - -This is a regression. - - -Thanks, -Jan - - -doc/ -2011-01-01 Jan Kratochvil - - * Makefile.in (GDBvn.texi): Add dependency on Makefile. - ---- a/gdb/doc/Makefile.in -+++ b/gdb/doc/Makefile.in -@@ -298,7 +298,7 @@ refcard.pdf : refcard.tex $(REFEDITS) - rm -f sedref.log sedref.tex tmp.sed - - # File to record current GDB version number (copied from main dir version.in) --GDBvn.texi : ${gdbdir}/version.in -+GDBvn.texi : ${gdbdir}/version.in Makefile - echo "@set GDBVN `sed q $(srcdir)/../version.in`" > ./GDBvn.new - if [ -n "$(PKGVERSION)" ]; then \ - echo "@set VERSION_PACKAGE $(PKGVERSION)" >> ./GDBvn.new; \ - diff --git a/gdb-doc-system-readline2.patch b/gdb-doc-system-readline2.patch deleted file mode 100644 index 677741b..0000000 --- a/gdb-doc-system-readline2.patch +++ /dev/null @@ -1,68 +0,0 @@ -http://sourceware.org/ml/gdb-patches/2011-01/msg00002.html -Subject: [patch] make info out-of-src-tree regression on --with-system-readline - -On Sat, 01 Jan 2011 02:13:24 +0100, Jan Kratochvil wrote: -> Another issue is that GDBvn.texi and gdb-cfg.texi should not be distributed. -> But that bug is a different one on top of this bug. That bug of a needless -> files distribution is dependent on magic GDB `make dist' I do not know and -> also that dist bug is not serious enough. - -This part has a real consequence - the previous patch does not apply for build -trees out of the src tree. It may be even a makeinfo bug. - -The change below is not needed for texi2dvi. In fact it even breaks it. - -As Fedora does not package texi2roff I did not test it. - -Another possibility is to error out if $(srcdir)/GDBvn.texi exists so that no -disambiguities may exist. GDBvn.texi would have to be removed from the -distributed tars. - -Comment on this part is more than welcome. - -This is a regression. - - -Thanks, -Jan - - -gdb/doc/ -2011-01-01 Jan Kratochvil - - Fix out-of-src doc build if using --with-system-readline. - * Makefile.in (MAKEINFO): New comment. - (gdb.info, gdb/index.html): Remove $(srcdir)/ from gdb.texinfo. - ---- a/gdb/doc/Makefile.in -+++ b/gdb/doc/Makefile.in -@@ -45,6 +45,9 @@ gdbdir = $(srcdir)/.. - TEXIDIR=${gdbdir}/../texinfo - - # where to find makeinfo, preferably one designed for texinfo-2 -+# Call makeinfo always with gdb.texinfo and not $(srcdir)/gdb.texinfo. -+# In the latter case GDBvn.texi would be included also from $(srcdir) even if -+# different GDBvn.texi exists in the current directory. - MAKEINFO=makeinfo - - MAKEHTML = $(MAKEINFO) --html -@@ -365,7 +368,7 @@ gdb.pdf: ${GDB_DOC_FILES} - # GDB MANUAL: info file - gdb.info: ${GDB_DOC_FILES} - $(MAKEINFO) $(READLINE_TEXI_INCFLAG) -I ${GDBMI_DIR} -I $(srcdir) \ -- -o gdb.info $(srcdir)/gdb.texinfo -+ -o gdb.info gdb.texinfo - - # GDB MANUAL: roff translations - # Try to use a recent texi2roff. v2 was put on prep in jan91. -@@ -440,7 +443,8 @@ gdb.mm: $(GDB_DOC_FILES) links2roff - # GDB MANUAL: HTML file - - gdb/index.html: ${GDB_DOC_FILES} -- $(MAKEHTML) $(MAKEHTMLFLAGS) $(READLINE_TEXI_INCFLAG) -I ${GDBMI_DIR} -I $(srcdir) $(srcdir)/gdb.texinfo -+ $(MAKEHTML) $(MAKEHTMLFLAGS) $(READLINE_TEXI_INCFLAG) \ -+ -I ${GDBMI_DIR} -I $(srcdir) gdb.texinfo - - # Clean these up before each run. Avoids a catch 22 with not being - # able to re-generate these files (to fix a corruption) because these - diff --git a/gdb-rhel5-compat.patch b/gdb-rhel5-compat.patch index 33e63a9..f269b39 100644 --- a/gdb-rhel5-compat.patch +++ b/gdb-rhel5-compat.patch @@ -1,11 +1,11 @@ gdb/linux-nat.c: - Workaround RHEL-5 kernels for detaching SIGSTOPped processes (BZ 498595). -Index: gdb-7.0.50.20100115/gdb/elfread.c +Index: gdb-7.2.50.20110104/gdb/elfread.c =================================================================== ---- gdb-7.0.50.20100115.orig/gdb/elfread.c 2010-01-15 22:19:28.000000000 +0100 -+++ gdb-7.0.50.20100115/gdb/elfread.c 2010-01-15 22:19:34.000000000 +0100 -@@ -582,7 +582,7 @@ elf_symtab_read (struct objfile *objfile +--- gdb-7.2.50.20110104.orig/gdb/elfread.c 2011-01-04 06:15:59.000000000 +0100 ++++ gdb-7.2.50.20110104/gdb/elfread.c 2011-01-04 06:17:54.000000000 +0100 +@@ -832,7 +832,7 @@ resolve_gnu_ifunc (const char *function_ #define BUILD_ID_VERBOSE_NONE 0 #define BUILD_ID_VERBOSE_FILENAMES 1 #define BUILD_ID_VERBOSE_BINARY_PARSE 2 @@ -14,7 +14,7 @@ Index: gdb-7.0.50.20100115/gdb/elfread.c static void show_build_id_verbose (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) -@@ -1659,8 +1659,10 @@ find_separate_debug_file_by_buildid (str +@@ -1920,8 +1920,10 @@ find_separate_debug_file_by_buildid (str /* Prevent looping on a stripped .debug file. */ if (build_id_name != NULL && strcmp (build_id_name, objfile->name) == 0) { @@ -25,12 +25,12 @@ Index: gdb-7.0.50.20100115/gdb/elfread.c xfree (build_id_name); } else if (build_id_name != NULL) -Index: gdb-7.0.50.20100115/gdb/corelow.c +Index: gdb-7.2.50.20110104/gdb/corelow.c =================================================================== ---- gdb-7.0.50.20100115.orig/gdb/corelow.c 2010-01-15 22:19:27.000000000 +0100 -+++ gdb-7.0.50.20100115/gdb/corelow.c 2010-01-15 22:19:34.000000000 +0100 -@@ -294,7 +294,7 @@ add_to_thread_list (bfd *abfd, asection - inferior_ptid = ptid; /* Yes, make it current */ +--- gdb-7.2.50.20110104.orig/gdb/corelow.c 2011-01-04 06:15:57.000000000 +0100 ++++ gdb-7.2.50.20110104/gdb/corelow.c 2011-01-04 06:18:08.000000000 +0100 +@@ -280,7 +280,7 @@ add_to_thread_list (bfd *abfd, asection + inferior_ptid = ptid; /* Yes, make it current. */ } -static int build_id_core_loads = 1; @@ -38,11 +38,11 @@ Index: gdb-7.0.50.20100115/gdb/corelow.c static void build_id_locate_exec (int from_tty) -Index: gdb-7.0.50.20100115/gdb/linux-nat.c +Index: gdb-7.2.50.20110104/gdb/linux-nat.c =================================================================== ---- gdb-7.0.50.20100115.orig/gdb/linux-nat.c 2010-01-15 22:19:27.000000000 +0100 -+++ gdb-7.0.50.20100115/gdb/linux-nat.c 2010-01-15 22:19:55.000000000 +0100 -@@ -1768,8 +1768,22 @@ GPT: lwp %s had signal %s, but it is in +--- gdb-7.2.50.20110104.orig/gdb/linux-nat.c 2011-01-04 06:15:59.000000000 +0100 ++++ gdb-7.2.50.20110104/gdb/linux-nat.c 2011-01-04 06:17:54.000000000 +0100 +@@ -1762,8 +1762,22 @@ GPT: lwp %s had signal %s, but it is in target_signal_to_string (signo)); } diff --git a/gdb-test-pid0-core.patch b/gdb-test-pid0-core.patch new file mode 100644 index 0000000..1bc221b --- /dev/null +++ b/gdb-test-pid0-core.patch @@ -0,0 +1,80 @@ +https://bugzilla.redhat.com/show_bug.cgi?id=611435 + +Fix: +Re: [RFA]corelow.c: Add tid to add_to_thread_list +http://sourceware.org/ml/gdb-patches/2010-08/msg00085.html +http://sourceware.org/ml/gdb-cvs/2010-08/msg00026.html +2e5bcfdef1ec3883d48c3f87a4be5c0dff25e17e + +--- /dev/null ++++ b/gdb/testsuite/gdb.arch/x86_64-pid0-core.core.bz2.uu +@@ -0,0 +1,20 @@ ++begin 600 x86_64-pid0-core.core.bz2 ++M0EIH.3%!629362,CA>P!$/'_____^*#EZ-A!SP36P&_:G0#=14``04A&8,'U ++M2*9`>$$)P`*RN"#*;#4R()IJ8C$TT&FC3$&@`T`#:C1H8C0T,@,FC,D"4T2! ++M"/2CU'B90]31ZAD#U`&AZF@/4:``!HT&F@!H<`#0-`-#0``#3$-&F@```#0R ++M``#")2FD]2>4]0TTT-!HTT--,0,"#$`R!I@AD`#1H,3&GZT.4TO$#H40/`0C ++M2$IRXS,<55!8T,&&,R.Z441"?J9I%G6GUA2!.[]Z"C5S[&19,%VS7E6[3"60 ++M@`-*2G)QEQ(;?0Y<=MK]/U?Q)LB%+F37TJ9BI*46)H'*Z@V"`"$"P7]&XZ:JE0E<*:#1M$P3G]>VCI)(A!O$64`5$4`E$$-.``7&(09`8HO`B6K!Q^& ++M562%N)2+0@*HB@%D@5$%!*0!L1&0D4D6\:-$A`)`+<6D82PP*H(J(H!?F;0$ ++M%PXB7N!2D4!44`W7"ADEQM6O9TBO5,_]1) ++M($Q2))#),UE,QQK)E$,3D\W.>!4)QO8A_@^Z_SXS4;Q8=HV6[:&$@2$@$R29IBW)K%3"O` ++M9^Y0YJ&BXY1U2HTZ5)2H-V\_(.DZHWE+C#WS($(!I"3CUH2#(+(OWUV"*<<9 ++MJ%A!J[%O.P&V%GI.`L7<1@0>,^1F\MY=V5UT,&NOG%7TTZ[03!@BHB@&)P` ++` ++end +--- /dev/null ++++ b/gdb/testsuite/gdb.arch/x86_64-pid0-core.exp +@@ -0,0 +1,46 @@ ++# 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 2 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, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++# Some kernel core files have PID 0 - for the idle task. ++ ++if ![istarget "x86_64-*-*"] { ++ verbose "Skipping x86_64-pid0-core test." ++ return ++} ++ ++set testfile "x86_64-pid0-core" ++set corebz2uufile ${srcdir}/${subdir}/${testfile}.core.bz2.uu ++set corefile ${objdir}/${subdir}/${testfile}.core ++ ++if {[catch "system \"uudecode -o - ${corebz2uufile} | bzip2 -dc >${corefile}\""] != 0} { ++ untested "failed uudecode or bzip2" ++ return -1 ++} ++file stat ${corefile} corestat ++if {$corestat(size) != 8798208} { ++ untested "uudecode or bzip2 produce invalid result" ++ return -1 ++} ++ ++gdb_exit ++gdb_start ++gdb_reinitialize_dir $srcdir/$subdir ++ ++# Former crash was: ++# thread.c:884: internal-error: switch_to_thread: Assertion `inf != NULL' failed. ++gdb_test "core-file ${corefile}" "Program terminated with signal 11, Segmentation fault\\.\r\n.*" diff --git a/gdb-test-pp-hint-error.patch b/gdb-test-pp-hint-error.patch new file mode 100644 index 0000000..68213a2 --- /dev/null +++ b/gdb-test-pp-hint-error.patch @@ -0,0 +1,93 @@ +http://sourceware.org/ml/gdb-patches/2011-01/msg00016.html +Subject: [patch] New testcase: py-prettyprint.exp: print hint_error + +Hi, + +PASS: gdb.python/py-prettyprint.exp: print hint_error +for + FYI: fix buglet in gdbpy_get_display_hint + http://sourceware.org/ml/gdb-patches/2010-07/msg00190.html + http://sourceware.org/ml/gdb-cvs/2010-07/msg00061.html + +I would check it in as obvious but the 2011 ChangeLog move process has to be +done first. So to be checked in later. + + +Thanks, +Jan + + +gdb/testsuite/ +2011-01-01 Jan Kratochvil + + * gdb.python/py-prettyprint.c (struct hint_error): New. + (main): New variable hint_error. + * gdb.python/py-prettyprint.exp (run_lang_tests): New testcase + "print hint_error". + * gdb.python/py-prettyprint.py (class pp_hint_error): New. + (register_pretty_printers): Register it. + +--- a/gdb/testsuite/gdb.python/py-prettyprint.c ++++ b/gdb/testsuite/gdb.python/py-prettyprint.c +@@ -44,6 +44,10 @@ struct lazystring { + const char *lazy_str; + }; + ++struct hint_error { ++ int x; ++}; ++ + #ifdef __cplusplus + struct S : public s { + int zs; +@@ -215,6 +219,7 @@ main () + nostring_type nstype; + struct ns ns, ns2; + struct lazystring estring, estring2; ++ struct hint_error hint_error; + + nstype.elements = narray; + nstype.len = 0; +--- a/gdb/testsuite/gdb.python/py-prettyprint.exp ++++ b/gdb/testsuite/gdb.python/py-prettyprint.exp +@@ -97,6 +97,8 @@ proc run_lang_tests {lang} { + gdb_test_no_output "python pp_ls_encoding = 'UTF-8'" + gdb_test "print estring2" "\"embedded \", " + ++ gdb_test "print hint_error" "Exception: hint failed\r\nhint_error_val" ++ + gdb_test "print c" " = container \"container\" with 2 elements = {$nl *.0. = 23,$nl *.1. = 72$nl}" + + gdb_test "print nstype" " = {$nl *.0. = 7,$nl *.1. = 42$nl}" +--- a/gdb/testsuite/gdb.python/py-prettyprint.py ++++ b/gdb/testsuite/gdb.python/py-prettyprint.py +@@ -156,6 +156,18 @@ class pp_ls: + def display_hint (self): + return 'string' + ++class pp_hint_error: ++ "Throw error from display_hint" ++ ++ def __init__(self, val): ++ self.val = val ++ ++ def to_string(self): ++ return 'hint_error_val' ++ ++ def display_hint (self): ++ raise Exception("hint failed") ++ + class pp_outer: + "Print struct outer" + +@@ -241,6 +253,9 @@ def register_pretty_printers (): + pretty_printers_dict[re.compile ('^struct outerstruct$')] = pp_outer + pretty_printers_dict[re.compile ('^outerstruct$')] = pp_outer + ++ pretty_printers_dict[re.compile ('^struct hint_error$')] = pp_hint_error ++ pretty_printers_dict[re.compile ('^hint_error$')] = pp_hint_error ++ + pretty_printers_dict = {} + + register_pretty_printers () + diff --git a/gdb.spec b/gdb.spec index 051452f..4c9da4a 100644 --- a/gdb.spec +++ b/gdb.spec @@ -23,11 +23,11 @@ Name: gdb%{?_with_debug:-debug} # Set version to contents of gdb/version.in. # NOTE: the FSF gdb versions are numbered N.M for official releases, like 6.3 # and, since January 2005, X.Y.Z.date for daily snapshots, like 6.3.50.20050112 # (daily snapshot from mailine), or 6.3.0.20040112 (head of the release branch). -Version: 7.2.50.20101231 +Version: 7.2.50.20110104 # 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: 6%{?_with_upstream:.upstream}%{dist} +Release: 7%{?_with_upstream:.upstream}%{dist} License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and GFDL and BSD and Public Domain Group: Development/Debuggers @@ -504,11 +504,16 @@ Patch510: gdb-bz592031-siginfo-lost-4of5.patch Patch511: gdb-bz592031-siginfo-lost-5of5.patch # Verify GDB Python built-in function gdb.solib_address exists (BZ # 634108). +#=fedoratest Patch526: gdb-bz634108-solib_address.patch -# Fix --with-system-readline doc build upstream regression. -Patch531: gdb-doc-system-readline.patch -Patch532: gdb-doc-system-readline2.patch +# New testcase py-prettyprint.exp:print hint_error (for BZ 611569, BZ 629236). +#=fedoratest +Patch541: gdb-test-pp-hint-error.patch + +# New test gdb.arch/x86_64-pid0-core.exp for kernel PID 0 cores (BZ 611435). +#=fedoratest +Patch542: gdb-test-pid0-core.patch BuildRequires: ncurses-devel%{?_isa} texinfo gettext flex bison expat-devel%{?_isa} Requires: readline%{?_isa} @@ -749,8 +754,8 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c %patch510 -p1 %patch511 -p1 %patch526 -p1 -%patch531 -p1 -%patch532 -p1 +%patch541 -p1 +%patch542 -p1 %patch393 -p1 %patch335 -p1 @@ -1127,6 +1132,11 @@ fi %endif %changelog +* Tue Jan 4 2011 Jan Kratochvil - 7.2.50.20110104-7.fc15 +- Rebase to FSF GDB 7.2.50.20110104 (which is a 7.3 pre-release). +- New testcase py-prettyprint.exp:print hint_error (for BZ 611569, BZ 629236). +- New test gdb.arch/x86_64-pid0-core.exp for kernel PID 0 cores (BZ 611435). + * Sat Jan 1 2011 Jan Kratochvil - 7.2.50.20101231-6.fc15 - Fix --with-system-readline doc build upstream regression. diff --git a/sources b/sources index 1d119b6..5e2a1c9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -bac361434830ddc3e83c40e187b60a96 gdb-7.2.50.20101231.tar.bz2 +190e007189ea1522d34559f43ec40eed gdb-7.2.50.20110104.tar.bz2