diff --git a/gdb-6.3-bz182116-exec-from-pthread.patch b/gdb-6.3-bz182116-exec-from-pthread.patch new file mode 100644 index 0000000..bf7f58c --- /dev/null +++ b/gdb-6.3-bz182116-exec-from-pthread.patch @@ -0,0 +1,23 @@ +https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=182116 + + +Index: gdb-6.5/gdb/linux-thread-db.c +=================================================================== +--- gdb-6.5.orig/gdb/linux-thread-db.c 2006-08-24 02:55:24.000000000 -0300 ++++ gdb-6.5/gdb/linux-thread-db.c 2006-08-24 02:56:16.000000000 -0300 +@@ -939,6 +939,15 @@ thread_db_wait (ptid_t ptid, struct targ + || ourstatus->kind == TARGET_WAITKIND_SIGNALLED) + return pid_to_ptid (-1); + ++ if (ourstatus->kind == TARGET_WAITKIND_EXECD) ++ { ++ remove_thread_event_breakpoints (); ++ unpush_target (&thread_db_ops); ++ using_thread_db = 0; ++ ++ return pid_to_ptid (GET_PID (ptid)); ++ } ++ + if (ourstatus->kind == TARGET_WAITKIND_STOPPED + && (ourstatus->value.sig == TARGET_SIGNAL_TRAP + || ourstatus->value.sig == TARGET_SIGNAL_ILL)) diff --git a/gdb-6.3-bz193763-object-name-completion.patch b/gdb-6.3-bz193763-object-name-completion.patch new file mode 100644 index 0000000..77e2358 --- /dev/null +++ b/gdb-6.3-bz193763-object-name-completion.patch @@ -0,0 +1,16 @@ +https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=193763 + + +Index: gdb-6.5/gdb/linespec.c +=================================================================== +--- gdb-6.5.orig/gdb/linespec.c 2006-08-24 02:57:04.000000000 -0300 ++++ gdb-6.5/gdb/linespec.c 2006-08-24 02:57:07.000000000 -0300 +@@ -295,7 +295,7 @@ add_minsym_members (const char *class_na + This will give us a list of all the member names including + the function signature. */ + completion_name = xmalloc (strlen (class_name) + +- strlen (member_name) + 9); ++ strlen (member_name) + strlen("'::$base(") + 1); + completion_name[0] = '\''; + strcpy (completion_name+1, class_name); + /* FIXME: make this the language class separator. */ diff --git a/gdb-6.5-bz200048-find_line_pc-segv.patch b/gdb-6.5-bz200048-find_line_pc-segv.patch new file mode 100644 index 0000000..26cc5ba --- /dev/null +++ b/gdb-6.5-bz200048-find_line_pc-segv.patch @@ -0,0 +1,30 @@ +https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=200048 + + +diff -ru gdb-6.5-orig/gdb/tui/tui-layout.c gdb-6.5-pr200048/gdb/tui/tui-layout.c +--- gdb-6.5-orig/gdb/tui/tui-layout.c 2006-08-07 21:33:42.000000000 +0200 ++++ gdb-6.5-pr200048/gdb/tui/tui-layout.c 2006-08-13 02:26:39.000000000 +0200 +@@ -519,13 +519,17 @@ + { + case SRC_COMMAND: + case SRC_DATA_COMMAND: +- find_line_pc (cursal.symtab, ++ if (find_line_pc (cursal.symtab, + TUI_SRC_WIN->detail.source_info.start_line_or_addr.u.line_no, +- &pc_list, &num_pc_values); +- /* FIXME: What do we do with multiple pc values for ctors/dtors or +- inlined functions? */ +- addr = pc_list[0]; +- xfree (pc_list); ++ &pc_list, &num_pc_values)) ++ { ++ /* FIXME: What do we do with multiple pc values for ctors/dtors or ++ inlined functions? */ ++ addr = pc_list[0]; ++ xfree (pc_list); ++ } ++ else ++ addr = 0; + break; + case DISASSEM_COMMAND: + case SRC_DISASSEM_COMMAND: diff --git a/gdb-6.5-bz203661-emit-relocs.patch b/gdb-6.5-bz203661-emit-relocs.patch new file mode 100644 index 0000000..e09c888 --- /dev/null +++ b/gdb-6.5-bz203661-emit-relocs.patch @@ -0,0 +1,17 @@ +Index: gdb-6.5/gdb/symfile.c +=================================================================== +--- gdb-6.5.orig/gdb/symfile.c 2006-08-24 02:56:02.000000000 -0300 ++++ gdb-6.5/gdb/symfile.c 2006-08-24 02:56:36.000000000 -0300 +@@ -3739,6 +3739,12 @@ symfile_dummy_outputs (bfd *abfd, asecti + bfd_byte * + symfile_relocate_debug_section (bfd *abfd, asection *sectp, bfd_byte *buf) + { ++ /* Executable files have all the relocations already resolved. ++ * Handle files linked with --emit-relocs. ++ * http://sources.redhat.com/ml/gdb/2006-08/msg00137.html */ ++ if ((abfd->flags & EXEC_P) != 0) ++ return NULL; ++ + /* We're only interested in debugging sections with relocation + information. */ + if ((sectp->flags & SEC_RELOC) == 0) diff --git a/gdb.spec b/gdb.spec index d17b384..5950c29 100644 --- a/gdb.spec +++ b/gdb.spec @@ -11,7 +11,7 @@ Name: gdb Version: 6.5 # The release always contains a leading reserved number, start it at 0. -Release: 4%{?dist} +Release: 5%{?dist} License: GPL Group: Development/Debuggers @@ -219,8 +219,32 @@ Patch179: gdb-6.3-ia32el-fix-waitpid-20060615.patch # Backport GNU .hash support. Patch180: gdb-6.5-bfd-hash-style-20060714.patch +# Bugfix segv on the source display by ^X 1 (fixes Patch130, BZ 200048). +Patch181: gdb-6.5-bz200048-find_line_pc-segv.patch + +# Do not step into the PPC solib trampolines (BZ 200533). +Patch182: gdb-6.5-bz200533-ppc-solib_trampoline.patch + +# Fix exec() from threaded program, partial CVS backport (BZ 182116). +Patch183: gdb-6.3-bz182116-exec-from-pthread.patch + +# Fix occasional failure to load shared libraries (BZ 146810). +Patch184: gdb-6.3-bz146810-solib_absolute_prefix_is_empty.patch + +# Bugfix object names completion (fixes Patch116, BZ 193763). +Patch185: gdb-6.3-bz193763-object-name-completion.patch + +# Avoid crash of 'info threads' if stale threads exist (BZ 195429). +Patch186: gdb-6.5-bz195429-stale-threads-crash.patch + +# Handle corrupted or missing location list information (BZ 196439). +Patch187: gdb-6.5-bz196439-valgrind-memcheck-compat.patch + +# Fix debuginfo addresses resolving for --emit-relocs Linux kernels (BZ 203661). +Patch188: gdb-6.5-bz203661-emit-relocs.patch + # Add support for memory nops on x86. -Patch181: gdb-6.5-opcodes-i386-nopmem.patch +Patch189: gdb-6.5-opcodes-i386-nopmem.patch BuildRequires: ncurses-devel glibc-devel gcc make gzip texinfo dejagnu gettext BuildRequires: flex bison sharutils @@ -314,6 +338,14 @@ and printing their data. %patch179 -p1 %patch180 -p1 %patch181 -p1 +%patch182 -p1 +%patch183 -p1 +%patch184 -p1 +%patch185 -p1 +%patch186 -p1 +%patch187 -p1 +%patch188 -p1 +%patch189 -p1 # Change the version that gets printed at GDB startup, so it is RedHat # specific. @@ -474,8 +506,18 @@ fi # don't include the files in include, they are part of binutils %changelog -* ??? Alexandre Oliva - 6.5-4 +* Thu Aug 24 2006 Alexandre Oliva - 6.5-5 - Backport support for i386 nop memory instructions. +- Fix debuginfo addresses resolving for --emit-relocs Linux kernels +(BZ 203661, from Jan Kratochvil, like the remaining changes). +- Bugfix segv on the source display by ^X 1 (fixes Patch130, BZ +200048). +- Do not step into the PPC solib trampolines (BZ 200533). +- Fix exec() from threaded program, partial CVS backport (BZ 182116). +- Fix occasional failure to load shared libraries (BZ 146810). +- Bugfix object names completion (fixes Patch116, BZ 193763). +- Avoid crash of 'info threads' if stale threads exist (BZ 195429). +- Handle corrupted or missing location list information (BZ 196439). * Thu Jul 13 2006 Alexandre Oliva - 6.5-3 - Add missing definition of multilib_64_archs for glibc-devel buildreqs.