From 752ff760ca083e4a0dc5e0cb590bc6c553b1776b Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Wed, 17 Jul 2013 05:55:02 +0200 Subject: [PATCH] Fix yum install command output when the binary RPM is missing (BZ 981154). - Fix the changlog entry formatting for 6.3.0.0-0.1. --- gdb-6.6-buildid-locate.patch | 175 +++++++++++++++++++++++------------ gdb.spec | 10 +- 2 files changed, 121 insertions(+), 64 deletions(-) diff --git a/gdb-6.6-buildid-locate.patch b/gdb-6.6-buildid-locate.patch index a363d1f..30b4375 100644 --- a/gdb-6.6-buildid-locate.patch +++ b/gdb-6.6-buildid-locate.patch @@ -1,7 +1,7 @@ -Index: gdb-7.5.50.20130310/gdb/corelow.c +Index: gdb-7.6/gdb/corelow.c =================================================================== ---- gdb-7.5.50.20130310.orig/gdb/corelow.c 2013-01-31 19:37:37.000000000 +0100 -+++ gdb-7.5.50.20130310/gdb/corelow.c 2013-03-10 16:36:37.019937408 +0100 +--- gdb-7.6.orig/gdb/corelow.c 2013-01-31 19:37:37.000000000 +0100 ++++ gdb-7.6/gdb/corelow.c 2013-07-17 05:28:49.277203536 +0200 @@ -46,6 +46,9 @@ #include "progspace.h" #include "objfiles.h" @@ -93,11 +93,11 @@ Index: gdb-7.5.50.20130310/gdb/corelow.c + NULL, NULL, NULL, + &setlist, &showlist); } -Index: gdb-7.5.50.20130310/gdb/doc/gdb.texinfo +Index: gdb-7.6/gdb/doc/gdb.texinfo =================================================================== ---- gdb-7.5.50.20130310.orig/gdb/doc/gdb.texinfo 2013-03-10 16:16:23.000000000 +0100 -+++ gdb-7.5.50.20130310/gdb/doc/gdb.texinfo 2013-03-10 16:17:15.216114613 +0100 -@@ -16680,6 +16680,27 @@ information files. +--- gdb-7.6.orig/gdb/doc/gdb.texinfo 2013-07-17 05:28:48.882203384 +0200 ++++ gdb-7.6/gdb/doc/gdb.texinfo 2013-07-17 05:28:49.286203539 +0200 +@@ -16831,6 +16831,27 @@ information files. @end table @@ -125,10 +125,10 @@ Index: gdb-7.5.50.20130310/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.5.50.20130310/gdb/solib-svr4.c +Index: gdb-7.6/gdb/solib-svr4.c =================================================================== ---- gdb-7.5.50.20130310.orig/gdb/solib-svr4.c 2013-01-31 14:52:52.000000000 +0100 -+++ gdb-7.5.50.20130310/gdb/solib-svr4.c 2013-03-10 16:37:49.842963280 +0100 +--- gdb-7.6.orig/gdb/solib-svr4.c 2013-01-31 14:52:52.000000000 +0100 ++++ gdb-7.6/gdb/solib-svr4.c 2013-07-17 05:28:49.287203539 +0200 @@ -1224,9 +1224,52 @@ svr4_read_so_list (CORE_ADDR lm, struct continue; } @@ -185,10 +185,10 @@ Index: gdb-7.5.50.20130310/gdb/solib-svr4.c xfree (buffer); /* If this entry has no name, or its name matches the name -Index: gdb-7.5.50.20130310/gdb/elfread.c +Index: gdb-7.6/gdb/elfread.c =================================================================== ---- gdb-7.5.50.20130310.orig/gdb/elfread.c 2013-03-06 22:20:02.000000000 +0100 -+++ gdb-7.5.50.20130310/gdb/elfread.c 2013-03-10 16:38:01.506968687 +0100 +--- gdb-7.6.orig/gdb/elfread.c 2013-03-18 10:20:02.000000000 +0100 ++++ gdb-7.6/gdb/elfread.c 2013-07-17 05:31:21.242256141 +0200 @@ -45,6 +45,11 @@ #include "regcache.h" #include "bcache.h" @@ -201,7 +201,7 @@ Index: gdb-7.5.50.20130310/gdb/elfread.c extern void _initialize_elfread (void); -@@ -1067,10 +1072,59 @@ elf_gnu_ifunc_resolver_return_stop (stru +@@ -1068,10 +1073,59 @@ elf_gnu_ifunc_resolver_return_stop (stru update_breakpoint_locations (b, sals, sals_end); } @@ -263,7 +263,7 @@ Index: gdb-7.5.50.20130310/gdb/elfread.c { if (!bfd_check_format (abfd, bfd_object) || bfd_get_flavour (abfd) != bfd_target_elf_flavour -@@ -1080,6 +1134,348 @@ build_id_bfd_get (bfd *abfd) +@@ -1081,6 +1135,348 @@ build_id_bfd_get (bfd *abfd) return elf_tdata (abfd)->build_id; } @@ -612,7 +612,7 @@ Index: gdb-7.5.50.20130310/gdb/elfread.c /* Return if FILENAME has NT_GNU_BUILD_ID matching the CHECK value. */ static int -@@ -1094,7 +1490,7 @@ build_id_verify (const char *filename, c +@@ -1095,7 +1491,7 @@ build_id_verify (const char *filename, c if (abfd == NULL) return 0; @@ -621,12 +621,46 @@ Index: gdb-7.5.50.20130310/gdb/elfread.c if (found == NULL) warning (_("File \"%s\" has no build-id, file skipped"), filename); -@@ -1110,17 +1506,18 @@ build_id_verify (const char *filename, c - return retval; +@@ -1112,16 +1508,53 @@ build_id_verify (const char *filename, c } --static char * + static char * -build_id_to_debug_filename (const struct elf_build_id *build_id) ++link_resolve (const char *symlink, int level) ++{ ++ char buf[PATH_MAX + 1], *target, *retval; ++ ssize_t got; ++ ++ if (level > 10) ++ return xstrdup (symlink); ++ ++ got = readlink (symlink, buf, sizeof (buf)); ++ if (got < 0 || got >= sizeof (buf)) ++ return xstrdup (symlink); ++ buf[got] = '\0'; ++ ++ if (IS_ABSOLUTE_PATH (buf)) ++ target = xstrdup (buf); ++ else ++ { ++ char *dir = ldirname (symlink); ++ ++ if (dir == NULL) ++ return xstrdup (symlink); ++ target = xstrprintf ("%s" ++#ifndef HAVE_DOS_BASED_FILE_SYSTEM ++ "/" ++#else /* HAVE_DOS_BASED_FILE_SYSTEM */ ++ "\\" ++#endif /* HAVE_DOS_BASED_FILE_SYSTEM */ ++ "%s", dir, buf); ++ } ++ ++ retval = link_resolve (target, level + 1); ++ xfree (target); ++ return retval; ++} ++ +char * +build_id_to_filename (const struct elf_build_id *build_id, char **link_return, + int add_debug_suffix) @@ -644,16 +678,19 @@ Index: gdb-7.5.50.20130310/gdb/elfread.c /* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will cause "/.build-id/..." lookups. */ -@@ -1133,6 +1530,8 @@ build_id_to_debug_filename (const struct +@@ -1134,7 +1567,10 @@ build_id_to_debug_filename (const struct size_t debugdir_len = strlen (debugdir); const gdb_byte *data = build_id->data; size_t size = build_id->size; +- char *s; + unsigned seqno; + struct stat statbuf_trash; - char *s; ++ /* Initialize it just to avoid a GCC false warning. */ ++ char *s, *link0 = NULL, *link0_resolved; memcpy (link, debugdir, debugdir_len); -@@ -1147,37 +1546,240 @@ build_id_to_debug_filename (const struct + s = &link[debugdir_len]; +@@ -1148,37 +1584,256 @@ build_id_to_debug_filename (const struct *s++ = '/'; while (size-- > 0) s += sprintf (s, "%02x", (unsigned) *data++); @@ -682,14 +719,20 @@ Index: gdb-7.5.50.20130310/gdb/elfread.c + else + *s2 = 0; + ++ if (!seqno) ++ { ++ /* If none of the real files is found report as missing file ++ always the non-.%u-suffixed file. */ ++ link0 = xstrdup (link); ++ } ++ + /* `access' automatically dereferences LINK. */ + if (lstat (link, &statbuf_trash) != 0) + { + /* Stop increasing SEQNO. */ + break; + } - -- if (retval != NULL && !build_id_verify (retval, build_id)) ++ + retval = lrealpath (link); + + if (retval != NULL && !build_id_verify (retval, build_id)) @@ -703,29 +746,39 @@ Index: gdb-7.5.50.20130310/gdb/elfread.c + } + + if (retval != NULL) ++ { ++ /* LINK_ALL is not used below in this non-NULL RETVAL case. */ ++ xfree (link0); ++ break; ++ } ++ ++ /* If the symlink has target request to install the target. ++ BASE-debuginfo.rpm contains the symlink but BASE.rpm may be missing. ++ https://bugzilla.redhat.com/show_bug.cgi?id=981154 */ ++ link0_resolved = link_resolve (link0, 0); ++ xfree (link0); + +- if (retval != NULL && !build_id_verify (retval, build_id)) ++ if (link_all == NULL) ++ link_all = xstrdup (link0_resolved); ++ else { - xfree (retval); - retval = NULL; -+ /* LINK_ALL is not used below in this non-NULL RETVAL case. */ -+ break; ++ size_t len_orig = strlen (link_all); ++ ++ link_all = xrealloc (link_all, ++ len_orig + 1 + strlen (link0_resolved) + 1); ++ ++ /* Use whitespace instead of DIRNAME_SEPARATOR to be compatible with ++ its possible use as an argument for installation command. */ ++ link_all[len_orig] = ' '; ++ ++ strcpy (&link_all[len_orig + 1], link0_resolved); } - -+ if (link_all == NULL) -+ link_all = xstrdup (link); -+ else -+ { -+ size_t len_orig = strlen (link_all); -+ -+ link_all = xrealloc (link_all, len_orig + 1 + strlen (link) + 1); -+ -+ /* Use whitespace instead of DIRNAME_SEPARATOR to be compatible with -+ its possible use as an argument for installation command. */ -+ link_all[len_orig] = ' '; -+ -+ strcpy (&link_all[len_orig + 1], link); -+ } ++ xfree (link0_resolved); + } -+ + + if (link_return != NULL) + { if (retval != NULL) @@ -905,7 +958,7 @@ Index: gdb-7.5.50.20130310/gdb/elfread.c /* Prevent looping on a stripped .debug file. */ if (build_id_name != NULL && filename_cmp (build_id_name, objfile->name) == 0) -@@ -1187,7 +1789,7 @@ find_separate_debug_file_by_buildid (str +@@ -1188,7 +1843,7 @@ find_separate_debug_file_by_buildid (str xfree (build_id_name); } else if (build_id_name != NULL) @@ -914,7 +967,7 @@ Index: gdb-7.5.50.20130310/gdb/elfread.c } return NULL; } -@@ -1425,9 +2027,10 @@ elf_symfile_read (struct objfile *objfil +@@ -1426,9 +2081,10 @@ elf_symfile_read (struct objfile *objfil && objfile->separate_debug_objfile == NULL && objfile->separate_debug_objfile_backlink == NULL) { @@ -927,7 +980,7 @@ Index: gdb-7.5.50.20130310/gdb/elfread.c if (debugfile == NULL) debugfile = find_separate_debug_file_by_debuglink (objfile); -@@ -1441,6 +2044,12 @@ elf_symfile_read (struct objfile *objfil +@@ -1442,6 +2098,12 @@ elf_symfile_read (struct objfile *objfil symbol_file_add_separate (abfd, symfile_flags, objfile); do_cleanups (cleanup); } @@ -940,7 +993,7 @@ Index: gdb-7.5.50.20130310/gdb/elfread.c } } -@@ -1760,4 +2369,16 @@ _initialize_elfread (void) +@@ -1761,4 +2423,16 @@ _initialize_elfread (void) elf_objfile_gnu_ifunc_cache_data = register_objfile_data (); gnu_ifunc_fns_p = &elf_gnu_ifunc_fns; @@ -957,10 +1010,10 @@ Index: gdb-7.5.50.20130310/gdb/elfread.c + + observer_attach_executable_changed (debug_print_executable_changed); } -Index: gdb-7.5.50.20130310/gdb/symfile.h +Index: gdb-7.6/gdb/symfile.h =================================================================== ---- gdb-7.5.50.20130310.orig/gdb/symfile.h 2013-02-03 17:20:18.000000000 +0100 -+++ gdb-7.5.50.20130310/gdb/symfile.h 2013-03-10 16:37:41.203959517 +0100 +--- gdb-7.6.orig/gdb/symfile.h 2013-02-03 17:20:18.000000000 +0100 ++++ gdb-7.6/gdb/symfile.h 2013-07-17 05:28:49.291203541 +0200 @@ -593,6 +593,12 @@ void free_symfile_segment_data (struct s extern struct cleanup *increment_reading_symtab (void); @@ -974,10 +1027,10 @@ Index: gdb-7.5.50.20130310/gdb/symfile.h /* From dwarf2read.c */ /* Names for a dwarf2 debugging section. The field NORMAL is the normal -Index: gdb-7.5.50.20130310/gdb/testsuite/lib/gdb.exp +Index: gdb-7.6/gdb/testsuite/lib/gdb.exp =================================================================== ---- gdb-7.5.50.20130310.orig/gdb/testsuite/lib/gdb.exp 2013-03-10 16:16:22.000000000 +0100 -+++ gdb-7.5.50.20130310/gdb/testsuite/lib/gdb.exp 2013-03-10 16:17:15.219114612 +0100 +--- gdb-7.6.orig/gdb/testsuite/lib/gdb.exp 2013-07-17 05:28:48.334203172 +0200 ++++ gdb-7.6/gdb/testsuite/lib/gdb.exp 2013-07-17 05:28:49.292203541 +0200 @@ -1482,6 +1482,16 @@ proc default_gdb_start { } { warning "Couldn't set the width to 0." } @@ -995,10 +1048,10 @@ Index: gdb-7.5.50.20130310/gdb/testsuite/lib/gdb.exp return 0; } -Index: gdb-7.5.50.20130310/gdb/testsuite/lib/mi-support.exp +Index: gdb-7.6/gdb/testsuite/lib/mi-support.exp =================================================================== ---- gdb-7.5.50.20130310.orig/gdb/testsuite/lib/mi-support.exp 2013-01-22 00:57:59.000000000 +0100 -+++ gdb-7.5.50.20130310/gdb/testsuite/lib/mi-support.exp 2013-03-10 16:17:15.220114612 +0100 +--- gdb-7.6.orig/gdb/testsuite/lib/mi-support.exp 2013-01-22 00:57:59.000000000 +0100 ++++ gdb-7.6/gdb/testsuite/lib/mi-support.exp 2013-07-17 05:28:49.292203541 +0200 @@ -212,6 +212,16 @@ proc default_mi_gdb_start { args } { warning "Couldn't set the width to 0." } @@ -1016,10 +1069,10 @@ Index: gdb-7.5.50.20130310/gdb/testsuite/lib/mi-support.exp # If allowing the inferior to have its own PTY then assign the inferior # its own terminal device here. if { $separate_inferior_pty } { -Index: gdb-7.5.50.20130310/gdb/objfiles.h +Index: gdb-7.6/gdb/objfiles.h =================================================================== ---- gdb-7.5.50.20130310.orig/gdb/objfiles.h 2013-02-28 20:00:31.000000000 +0100 -+++ gdb-7.5.50.20130310/gdb/objfiles.h 2013-03-10 16:17:15.220114612 +0100 +--- gdb-7.6.orig/gdb/objfiles.h 2013-02-28 20:00:31.000000000 +0100 ++++ gdb-7.6/gdb/objfiles.h 2013-07-17 05:28:49.293203542 +0200 @@ -432,6 +432,10 @@ struct objfile #define OBJF_MAINLINE (1 << 5) @@ -1031,10 +1084,10 @@ Index: gdb-7.5.50.20130310/gdb/objfiles.h /* The object file that contains the runtime common minimal symbols for SunOS4. Note that this objfile has no associated BFD. */ -Index: gdb-7.5.50.20130310/gdb/testsuite/gdb.base/corefile.exp +Index: gdb-7.6/gdb/testsuite/gdb.base/corefile.exp =================================================================== ---- gdb-7.5.50.20130310.orig/gdb/testsuite/gdb.base/corefile.exp 2013-01-01 07:33:25.000000000 +0100 -+++ gdb-7.5.50.20130310/gdb/testsuite/gdb.base/corefile.exp 2013-03-10 16:17:15.220114612 +0100 +--- gdb-7.6.orig/gdb/testsuite/gdb.base/corefile.exp 2013-01-01 07:33:25.000000000 +0100 ++++ gdb-7.6/gdb/testsuite/gdb.base/corefile.exp 2013-07-17 05:28:49.293203542 +0200 @@ -256,3 +256,33 @@ if ![is_remote target] { gdb_exit diff --git a/gdb.spec b/gdb.spec index 5e27ca2..6108450 100644 --- a/gdb.spec +++ b/gdb.spec @@ -36,7 +36,7 @@ Version: 7.6 # 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: 32%{?dist} +Release: 33%{?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 @@ -1417,6 +1417,10 @@ fi %endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch" %changelog +* Wed Jul 17 2013 Jan Kratochvil - 7.6-33.fc20 +- Fix yum install command output when the binary RPM is missing (BZ 981154). +- Fix the changlog entry formatting for 6.3.0.0-0.1. + * Mon Jun 10 2013 Jan Kratochvil - 7.6-32.fc19 - [scl] Disable Python frame filters on scl. - Update libraries opening performance fix from upstream. @@ -3744,8 +3748,8 @@ prelink base addresses. Fixes BZ 175075, BZ 190545. - Enable PPC CFI, remove merged ppc patches. * Wed Jan 12 2005 Elena Zannoni - 6.3.0.0-0.1 - Andrew Cagney - Jeff Johnston +- commit co-authors Andrew Cagney and + Jeff Johnston . - Various fixes to complete the import and merge. * Wed Dec 01 2004 Andrew Cagney - 6.3.0.0