From e6cdbfd0182abfff242d249a88f4d18b4ca6fe22 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Wed, 4 Jan 2012 09:46:32 +0100 Subject: [PATCH] Reinclude gdb-dlopen-stap-probe.patch (missing in Fedora glibc - BZ 752476). --- gdb-dlopen-stap-probe.patch | 84 +++++++++++++++++----------------- gdb-runtest-pie-override.patch | 2 +- gdb.spec | 25 +++++----- 3 files changed, 57 insertions(+), 54 deletions(-) diff --git a/gdb-dlopen-stap-probe.patch b/gdb-dlopen-stap-probe.patch index 5352299..54a3c03 100644 --- a/gdb-dlopen-stap-probe.patch +++ b/gdb-dlopen-stap-probe.patch @@ -2,11 +2,11 @@ From: Gary Benson To: Jan Kratochvil Message-ID: <20110810133605.GB7294@redhat.com> -diff --git a/gdb/infrun.c b/gdb/infrun.c -index 4296d3a..fd5e9c3 100644 ---- a/gdb/infrun.c -+++ b/gdb/infrun.c -@@ -321,6 +323,13 @@ static struct symbol *step_start_function; +Index: gdb-7.4.50.20120103/gdb/infrun.c +=================================================================== +--- gdb-7.4.50.20120103.orig/gdb/infrun.c 2012-01-04 00:26:15.000000000 +0100 ++++ gdb-7.4.50.20120103/gdb/infrun.c 2012-01-04 00:26:21.960833391 +0100 +@@ -354,6 +354,13 @@ static struct symbol *step_start_functio /* Nonzero if we want to give control to the user when we're notified of shared library events by the dynamic linker. */ int stop_on_solib_events; @@ -20,7 +20,7 @@ index 4296d3a..fd5e9c3 100644 static void show_stop_on_solib_events (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) -@@ -7153,7 +7162,7 @@ Show stopping for shared library events."), _("\ +@@ -7304,7 +7311,7 @@ Show stopping for shared library events. If nonzero, gdb will give control to the user when the dynamic linker\n\ notifies gdb of shared library events. The most common event of interest\n\ to the user would be loading/unloading of a new library."), @@ -29,10 +29,10 @@ index 4296d3a..fd5e9c3 100644 show_stop_on_solib_events, &setlist, &showlist); -diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c -index dffc621..73cbe1c 100644 ---- a/gdb/solib-svr4.c -+++ b/gdb/solib-svr4.c +Index: gdb-7.4.50.20120103/gdb/solib-svr4.c +=================================================================== +--- gdb-7.4.50.20120103.orig/gdb/solib-svr4.c 2012-01-04 00:26:15.000000000 +0100 ++++ gdb-7.4.50.20120103/gdb/solib-svr4.c 2012-01-04 00:29:56.303014562 +0100 @@ -48,6 +48,8 @@ #include "auxv.h" #include "exceptions.h" @@ -42,7 +42,7 @@ index dffc621..73cbe1c 100644 static struct link_map_offsets *svr4_fetch_link_map_offsets (void); static int svr4_have_link_map_offsets (void); static void svr4_relocate_main_executable (void); -@@ -92,6 +94,32 @@ static const char * const solib_break_names[] = +@@ -93,6 +95,32 @@ static const char * const solib_break_na NULL }; @@ -75,7 +75,7 @@ index dffc621..73cbe1c 100644 static const char * const bkpt_names[] = { "_start", -@@ -335,6 +363,12 @@ struct svr4_info +@@ -314,6 +342,12 @@ struct svr4_info CORE_ADDR interp_text_sect_high; CORE_ADDR interp_plt_sect_low; CORE_ADDR interp_plt_sect_high; @@ -88,7 +88,7 @@ index dffc621..73cbe1c 100644 }; /* Per-program-space data key. */ -@@ -344,8 +378,15 @@ static void +@@ -323,8 +357,15 @@ static void svr4_pspace_data_cleanup (struct program_space *pspace, void *arg) { struct svr4_info *info; @@ -104,7 +104,7 @@ index dffc621..73cbe1c 100644 xfree (info); } -@@ -1321,6 +1362,126 @@ exec_entry_point (struct bfd *abfd, struct target_ops *targ) +@@ -1445,6 +1486,126 @@ exec_entry_point (struct bfd *abfd, stru targ); } @@ -127,7 +127,7 @@ index dffc621..73cbe1c 100644 + { + if (!probe_info[i].mandatory) + { -+ const struct stap_probe *probe; ++ struct stap_probe *probe; + int ix; + + for (ix = 0; @@ -211,7 +211,7 @@ index dffc621..73cbe1c 100644 + + for (i = 0; i < NUM_PROBES; i++) + { -+ const struct stap_probe *probe; ++ struct stap_probe *probe; + int ix; + + for (ix = 0; @@ -228,10 +228,10 @@ index dffc621..73cbe1c 100644 + create_solib_event_breakpoint (gdbarch, address); +} + - /* + /* Helper function for gdb_bfd_lookup_symbol. */ - LOCAL FUNCTION -@@ -1372,10 +1533,18 @@ enable_break (struct svr4_info *info, int from_tty) + static int +@@ -1493,10 +1654,18 @@ enable_break (struct svr4_info *info, in asection *interp_sect; gdb_byte *interp_name; CORE_ADDR sym_addr; @@ -250,7 +250,7 @@ index dffc621..73cbe1c 100644 /* If we already have a shared library list in the target, and r_debug contains r_brk, set the breakpoint there - this should mean r_brk has already been relocated. Assume the dynamic linker -@@ -1407,7 +1576,7 @@ enable_break (struct svr4_info *info, int from_tty) +@@ -1528,7 +1697,7 @@ enable_break (struct svr4_info *info, in That knowledge is encoded in the address, if it's Thumb the low bit is 1. However, we've stripped that info above and it's not clear what all the consequences are of passing a non-addr_bits_remove'd @@ -259,7 +259,7 @@ index dffc621..73cbe1c 100644 find_pc_section verifies we know about the address and have some hope of computing the right kind of breakpoint to use (via symbol info). It does mean that GDB needs to be pointed at a -@@ -1445,7 +1614,7 @@ enable_break (struct svr4_info *info, int from_tty) +@@ -1566,7 +1735,7 @@ enable_break (struct svr4_info *info, in + bfd_section_size (tmp_bfd, interp_sect); } @@ -268,7 +268,7 @@ index dffc621..73cbe1c 100644 return 1; } } -@@ -1599,7 +1768,8 @@ enable_break (struct svr4_info *info, int from_tty) +@@ -1721,7 +1890,8 @@ enable_break (struct svr4_info *info, in if (sym_addr != 0) { @@ -278,7 +278,7 @@ index dffc621..73cbe1c 100644 xfree (interp_name); return 1; } -@@ -1625,7 +1795,7 @@ enable_break (struct svr4_info *info, int from_tty) +@@ -1747,7 +1917,7 @@ enable_break (struct svr4_info *info, in sym_addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch, sym_addr, ¤t_target); @@ -287,7 +287,7 @@ index dffc621..73cbe1c 100644 return 1; } } -@@ -1641,7 +1811,7 @@ enable_break (struct svr4_info *info, int from_tty) +@@ -1763,7 +1933,7 @@ enable_break (struct svr4_info *info, in sym_addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch, sym_addr, ¤t_target); @@ -296,17 +296,17 @@ index dffc621..73cbe1c 100644 return 1; } } -@@ -2470,4 +2640,5 @@ _initialize_svr4_solib (void) +@@ -2539,4 +2709,5 @@ _initialize_svr4_solib (void) svr4_so_ops.lookup_lib_global_symbol = elf_lookup_lib_symbol; svr4_so_ops.same = svr4_same; svr4_so_ops.keep_data_in_core = svr4_keep_data_in_core; + svr4_so_ops.update_breakpoints = svr4_update_solib_event_breakpoints; } -diff --git a/gdb/solib.c b/gdb/solib.c -index 3296ed4..7ba70ce 100644 ---- a/gdb/solib.c -+++ b/gdb/solib.c -@@ -1313,6 +1313,18 @@ no_shared_libraries (char *ignored, int from_tty) +Index: gdb-7.4.50.20120103/gdb/solib.c +=================================================================== +--- gdb-7.4.50.20120103.orig/gdb/solib.c 2012-01-04 00:26:15.000000000 +0100 ++++ gdb-7.4.50.20120103/gdb/solib.c 2012-01-04 00:29:07.751200038 +0100 +@@ -1214,6 +1214,18 @@ no_shared_libraries (char *ignored, int objfile_purge_solibs (); } @@ -325,24 +325,24 @@ index 3296ed4..7ba70ce 100644 /* Reload shared libraries, but avoid reloading the same symbol file we already have loaded. */ -diff --git a/gdb/solib.h b/gdb/solib.h -index c473d85..7b3881c 100644 ---- a/gdb/solib.h -+++ b/gdb/solib.h -@@ -78,4 +78,8 @@ extern void set_solib_ops (struct gdbarch *gdbarch, - - extern int libpthread_name_p (const char *name); +Index: gdb-7.4.50.20120103/gdb/solib.h +=================================================================== +--- gdb-7.4.50.20120103.orig/gdb/solib.h 2011-08-30 04:48:05.000000000 +0200 ++++ gdb-7.4.50.20120103/gdb/solib.h 2012-01-04 00:27:40.415533686 +0100 +@@ -91,4 +91,8 @@ extern CORE_ADDR bfd_lookup_symbol_from_ + void *), + void *data); +/* Enable or disable optional solib event breakpoints as appropriate. */ + +extern void update_solib_breakpoints (void); + #endif /* SOLIB_H */ -diff --git a/gdb/solist.h b/gdb/solist.h -index dad11be..14ede10 100644 ---- a/gdb/solist.h -+++ b/gdb/solist.h -@@ -137,6 +137,13 @@ struct target_so_ops +Index: gdb-7.4.50.20120103/gdb/solist.h +=================================================================== +--- gdb-7.4.50.20120103.orig/gdb/solist.h 2011-08-09 14:51:47.000000000 +0200 ++++ gdb-7.4.50.20120103/gdb/solist.h 2012-01-04 00:26:21.962833383 +0100 +@@ -149,6 +149,13 @@ struct target_so_ops core file (in particular, for readonly sections). */ int (*keep_data_in_core) (CORE_ADDR vaddr, unsigned long size); diff --git a/gdb-runtest-pie-override.patch b/gdb-runtest-pie-override.patch index dc54494..ab45237 100644 --- a/gdb-runtest-pie-override.patch +++ b/gdb-runtest-pie-override.patch @@ -15,7 +15,7 @@ But there is a problem with testsuite.unix non-unique subdir name and also a problem with make -j parallelization of the testsuite. --- gdb-7.3.50.20110722/gdb/testsuite/lib/future.exp 2011-10-11 16:44:05.000000000 +0200 -+++ gdb-7.3.50.20110722/gdb/testsuite/lib/future.exp2 2011-10-11 16:44:10.000000000 +0200 ++++ gdb-7.3.50.20110722/gdb/testsuite/lib/future.exp 2011-10-11 16:44:10.000000000 +0200 @@ -77,6 +77,10 @@ proc gdb_default_target_compile {source set ldflags "" set dest [target_info name] diff --git a/gdb.spec b/gdb.spec index a015563..2bad477 100644 --- a/gdb.spec +++ b/gdb.spec @@ -27,7 +27,7 @@ Version: 7.4.50.20120103 # 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: 2%{?_with_upstream:.upstream}%{?dist} +Release: 3%{?_with_upstream:.upstream}%{?dist} License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain Group: Development/Debuggers @@ -369,12 +369,7 @@ Patch348: gdb-6.8-bz466901-backtrace-full-prelinked.patch # The merged branch `archer-jankratochvil-fedora15' of: # http://sourceware.org/gdb/wiki/ProjectArcher -#=push -#archer-jankratochvil-vla -#=push -#archer-jankratochvil-watchpoint3 -#=push -#archer-jankratochvil-ifunc +#=push+work Patch349: gdb-archer.patch # Fix parsing elf64-i386 files for kdump PAE vmcore dumps (BZ 457187). @@ -487,11 +482,11 @@ Patch526: gdb-bz634108-solib_address.patch Patch542: gdb-test-pid0-core.patch # [archer-tromey-delayed-symfile] New test gdb.dwarf2/dw2-aranges.exp. -# =fedoratest +#=fedoratest Patch547: gdb-test-dw2-aranges.patch # [archer-keiths-expr-cumulative+upstream] Import C++ testcases. -# =fedoratest +#=fedoratest Patch548: gdb-test-expr-cumulative-archer.patch # Toolchain on sparc is slightly broken and debuginfo files are generated @@ -505,19 +500,24 @@ Patch548: gdb-test-expr-cumulative-archer.patch # # While we figure out what's wrong in the toolchain and do a full archive # rebuild to fix it, we need to be able to use gdb :) +#=push+work Patch579: gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch # Fix dlopen of libpthread.so, patched glibc required (Gary Benson, BZ 669432). -#FIXME:Patch618: gdb-dlopen-stap-probe.patch +#=push +Patch618: gdb-dlopen-stap-probe.patch Patch619: gdb-dlopen-stap-probe-test.patch # Work around PR libc/13097 "linux-vdso.so.1" warning message. +#=push Patch627: gdb-glibc-vdso-workaround.patch # Hack for proper PIE run of the testsuite. +#=push+work Patch634: gdb-runtest-pie-override.patch # Fix zero registers core files w/gcc-4.7. +#=push Patch638: gdb-gcc47-gcore-zero.patch BuildRequires: ncurses-devel%{?_isa} texinfo gettext flex bison expat-devel%{?_isa} @@ -777,7 +777,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c %patch547 -p1 %patch548 -p1 %patch579 -p1 -#FIXME:patch618 -p1 +%patch618 -p1 %patch619 -p1 %patch627 -p1 %patch634 -p1 @@ -1197,6 +1197,9 @@ fi %{_infodir}/gdb.info* %changelog +* Wed Jan 4 2012 Jan Kratochvil - 7.4.50.20120103-3.fc17 +- Reinclude gdb-dlopen-stap-probe.patch (missing in Fedora glibc - BZ 752476). + * Tue Jan 3 2012 Jan Kratochvil - 7.4.50.20120103-2.fc17 - Fix SystemTap support regression on i686 (Sergio Durigan Junior).