9cd9368e86
Adjust build-id related patches. Drop backported patches which are no longer relevant. Bump 'snapgnulib' date. Backport upstream patch which papers over Fortran lexical analyzer bug (RHBZ 2012976, Tom de Vries).
129 lines
3.1 KiB
Diff
129 lines
3.1 KiB
Diff
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
|
|
From: Fedora GDB patches <invalid@email.com>
|
|
Date: Fri, 27 Oct 2017 21:07:50 +0200
|
|
Subject: gdb-6.6-buildid-locate-rpm-scl.patch
|
|
|
|
;; [SCL] Skip deprecated .gdb_index warning for Red Hat built files (BZ 953585).
|
|
;;=push+jan
|
|
|
|
warning: Skipping deprecated .gdb_index section
|
|
https://bugzilla.redhat.com/show_bug.cgi?id=953585
|
|
|
|
diff --git a/gdb/build-id.c b/gdb/build-id.c
|
|
--- a/gdb/build-id.c
|
|
+++ b/gdb/build-id.c
|
|
@@ -742,7 +742,11 @@ static int missing_rpm_list_entries;
|
|
/* Returns the count of newly added rpms. */
|
|
|
|
static int
|
|
+#ifndef GDB_INDEX_VERIFY_VENDOR
|
|
missing_rpm_enlist (const char *filename)
|
|
+#else
|
|
+missing_rpm_enlist_1 (const char *filename, int verify_vendor)
|
|
+#endif
|
|
{
|
|
static int rpm_init_done = 0;
|
|
rpmts ts;
|
|
@@ -849,7 +853,11 @@ missing_rpm_enlist (const char *filename)
|
|
mi = rpmtsInitIterator_p (ts, RPMTAG_BASENAMES, filename, 0);
|
|
if (mi != NULL)
|
|
{
|
|
+#ifndef GDB_INDEX_VERIFY_VENDOR
|
|
for (;;)
|
|
+#else
|
|
+ if (!verify_vendor) for (;;)
|
|
+#endif
|
|
{
|
|
Header h;
|
|
char *debuginfo, **slot, *s, *s2;
|
|
@@ -967,6 +975,37 @@ missing_rpm_enlist (const char *filename)
|
|
xfree (debuginfo);
|
|
count++;
|
|
}
|
|
+#ifdef GDB_INDEX_VERIFY_VENDOR
|
|
+ else /* verify_vendor */
|
|
+ {
|
|
+ int vendor_pass = 0, vendor_fail = 0;
|
|
+
|
|
+ for (;;)
|
|
+ {
|
|
+ Header h;
|
|
+ errmsg_t err;
|
|
+ char *vendor;
|
|
+
|
|
+ h = rpmdbNextIterator_p (mi);
|
|
+ if (h == NULL)
|
|
+ break;
|
|
+
|
|
+ vendor = headerFormat_p (h, "%{vendor}", &err);
|
|
+ if (!vendor)
|
|
+ {
|
|
+ warning (_("Error querying the rpm file `%s': %s"), filename,
|
|
+ err);
|
|
+ continue;
|
|
+ }
|
|
+ if (strcmp (vendor, "Red Hat, Inc.") == 0)
|
|
+ vendor_pass = 1;
|
|
+ else
|
|
+ vendor_fail = 1;
|
|
+ xfree (vendor);
|
|
+ }
|
|
+ count = vendor_pass != 0 && vendor_fail == 0;
|
|
+ }
|
|
+#endif
|
|
|
|
rpmdbFreeIterator_p (mi);
|
|
}
|
|
@@ -976,6 +1015,20 @@ missing_rpm_enlist (const char *filename)
|
|
return count;
|
|
}
|
|
|
|
+#ifdef GDB_INDEX_VERIFY_VENDOR
|
|
+missing_rpm_enlist (const char *filename)
|
|
+{
|
|
+ return missing_rpm_enlist_1 (filename, 0);
|
|
+}
|
|
+
|
|
+extern int rpm_verify_vendor (const char *filename);
|
|
+int
|
|
+rpm_verify_vendor (const char *filename)
|
|
+{
|
|
+ return missing_rpm_enlist_1 (filename, 1);
|
|
+}
|
|
+#endif
|
|
+
|
|
static bool
|
|
missing_rpm_list_compar (const char *ap, const char *bp)
|
|
{
|
|
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
|
|
--- a/gdb/dwarf2/read.c
|
|
+++ b/gdb/dwarf2/read.c
|
|
@@ -2801,6 +2801,16 @@ read_gdb_index_from_buffer (const char *filename,
|
|
"set use-deprecated-index-sections on". */
|
|
if (version < 6 && !deprecated_ok)
|
|
{
|
|
+#ifdef GDB_INDEX_VERIFY_VENDOR
|
|
+ extern int rpm_verify_vendor (const char *filename);
|
|
+
|
|
+ /* Red Hat Developer Toolset exception. */
|
|
+ if (rpm_verify_vendor (filename))
|
|
+ {}
|
|
+ else
|
|
+ {
|
|
+
|
|
+#endif
|
|
static int warning_printed = 0;
|
|
if (!warning_printed)
|
|
{
|
|
@@ -2812,6 +2822,10 @@ to use the section anyway."),
|
|
warning_printed = 1;
|
|
}
|
|
return 0;
|
|
+#ifdef GDB_INDEX_VERIFY_VENDOR
|
|
+
|
|
+ }
|
|
+#endif
|
|
}
|
|
/* Version 7 indices generated by gold refer to the CU for a symbol instead
|
|
of the TU (for symbols coming from TUs),
|