Rebase to FSF GDB 9.0.50.20191018 (9.1pre).

Expand comment on "bundled(binutils)".
Remove libctf's files from RPM_BUILD_ROOT.
This commit is contained in:
Sergio Durigan Junior 2019-10-19 14:30:13 -04:00
parent 86fc1101ee
commit 2f578f51e4
24 changed files with 108 additions and 96 deletions

2
.gitignore vendored
View File

@ -1,3 +1,3 @@
/gdb-libstdc++-v3-python-8.1.1-20180626.tar.xz
/v2.0.1.tar.gz
/gdb-8.3.50.20190924.tar.xz
/gdb-9.0.50.20191018.tar.xz

View File

@ -1 +1 @@
3868d2e9f18d0351c472c0d6c8864c610e62598a
39849b0503152de7447b3da67ed9fa45fa9ba5fd

View File

@ -16,7 +16,7 @@ Subject: gdb-6.3-gstack-20050411.patch
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -1741,7 +1741,7 @@ info install-info clean-info dvi pdf install-pdf html install-html: force
@@ -1744,7 +1744,7 @@ info install-info clean-info dvi pdf install-pdf html install-html: force
install: all
@$(MAKE) $(FLAGS_TO_PASS) install-only
@ -25,7 +25,7 @@ diff --git a/gdb/Makefile.in b/gdb/Makefile.in
transformed_name=`t='$(program_transform_name)'; \
echo gdb | sed -e "$$t"` ; \
if test "x$$transformed_name" = x; then \
@@ -1790,7 +1790,25 @@ install-guile:
@@ -1793,7 +1793,25 @@ install-guile:
install-python:
$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(GDB_DATADIR)/python/gdb
@ -52,7 +52,7 @@ diff --git a/gdb/Makefile.in b/gdb/Makefile.in
transformed_name=`t='$(program_transform_name)'; \
echo gdb | sed -e $$t` ; \
if test "x$$transformed_name" = x; then \
@@ -1813,6 +1831,18 @@ uninstall: force $(CONFIG_UNINSTALL)
@@ -1816,6 +1834,18 @@ uninstall: force $(CONFIG_UNINSTALL)
fi
@$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do

View File

@ -27,7 +27,7 @@ diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest
diff --git a/gdb/top.c b/gdb/top.c
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -2059,7 +2059,7 @@ init_gdb_version_vars (void)
@@ -2057,7 +2057,7 @@ init_gdb_version_vars (void)
struct internalvar *major_version_var = create_internalvar ("_gdb_major");
struct internalvar *minor_version_var = create_internalvar ("_gdb_minor");
int vmajor = 0, vminor = 0, vrevision = 0;

View File

@ -127,7 +127,7 @@ diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c
diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
--- a/gdb/amd64-tdep.c
+++ b/gdb/amd64-tdep.c
@@ -2624,6 +2624,7 @@ amd64_frame_unwind_stop_reason (struct frame_info *this_frame,
@@ -2647,6 +2647,7 @@ amd64_frame_unwind_stop_reason (struct frame_info *this_frame,
{
struct amd64_frame_cache *cache =
amd64_frame_cache (this_frame, this_cache);
@ -135,7 +135,7 @@ diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
if (!cache->base_p)
return UNWIND_UNAVAILABLE;
@@ -2632,6 +2633,10 @@ amd64_frame_unwind_stop_reason (struct frame_info *this_frame,
@@ -2655,6 +2656,10 @@ amd64_frame_unwind_stop_reason (struct frame_info *this_frame,
if (cache->base == 0)
return UNWIND_OUTERMOST;
@ -146,7 +146,7 @@ diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
return UNWIND_NO_REASON;
}
@@ -2765,6 +2770,7 @@ amd64_sigtramp_frame_this_id (struct frame_info *this_frame,
@@ -2788,6 +2793,7 @@ amd64_sigtramp_frame_this_id (struct frame_info *this_frame,
{
struct amd64_frame_cache *cache =
amd64_sigtramp_frame_cache (this_frame, this_cache);
@ -154,7 +154,7 @@ diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
if (!cache->base_p)
(*this_id) = frame_id_build_unavailable_stack (get_frame_pc (this_frame));
@@ -2773,6 +2779,11 @@ amd64_sigtramp_frame_this_id (struct frame_info *this_frame,
@@ -2796,6 +2802,11 @@ amd64_sigtramp_frame_this_id (struct frame_info *this_frame,
/* This marks the outermost frame. */
return;
}

View File

@ -11,7 +11,7 @@ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=218379
diff --git a/gdb/symtab.c b/gdb/symtab.c
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -3148,6 +3148,13 @@ find_pc_sect_line (CORE_ADDR pc, struct obj_section *section, int notcurrent)
@@ -3133,6 +3133,13 @@ find_pc_sect_line (CORE_ADDR pc, struct obj_section *section, int notcurrent)
SYMBOL_LINKAGE_NAME (msymbol)); */
;
/* fall through */

View File

@ -120,7 +120,7 @@ diff --git a/gdb/gdbsupport/common-exceptions.h b/gdb/gdbsupport/common-exceptio
diff --git a/gdb/main.c b/gdb/main.c
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -445,6 +445,34 @@ struct cmdarg
@@ -447,6 +447,34 @@ struct cmdarg
char *string;
};
@ -155,7 +155,7 @@ diff --git a/gdb/main.c b/gdb/main.c
static void
captured_main_1 (struct captured_main_args *context)
{
@@ -890,6 +918,8 @@ captured_main_1 (struct captured_main_args *context)
@@ -887,6 +915,8 @@ captured_main_1 (struct captured_main_args *context)
{
symarg = argv[optind];
execarg = argv[optind];
@ -164,7 +164,7 @@ diff --git a/gdb/main.c b/gdb/main.c
optind++;
}
@@ -1043,12 +1073,25 @@ captured_main_1 (struct captured_main_args *context)
@@ -1040,12 +1070,25 @@ captured_main_1 (struct captured_main_args *context)
&& symarg != NULL
&& strcmp (execarg, symarg) == 0)
{

View File

@ -98,7 +98,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -3470,6 +3470,16 @@ read_gdb_index_from_buffer (struct objfile *objfile,
@@ -3472,6 +3472,16 @@ read_gdb_index_from_buffer (struct objfile *objfile,
"set use-deprecated-index-sections on". */
if (version < 6 && !deprecated_ok)
{
@ -115,7 +115,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
static int warning_printed = 0;
if (!warning_printed)
{
@@ -3481,6 +3491,10 @@ to use the section anyway."),
@@ -3483,6 +3493,10 @@ to use the section anyway."),
warning_printed = 1;
}
return 0;

View File

@ -1058,7 +1058,7 @@ diff --git a/gdb/corelow.c b/gdb/corelow.c
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -20679,6 +20679,27 @@ information files.
@@ -20699,6 +20699,27 @@ information files.
@end table
@ -1111,7 +1111,7 @@ diff --git a/gdb/dwarf-index-cache.c b/gdb/dwarf-index-cache.c
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -2691,7 +2691,7 @@ dwarf2_get_dwz_file (struct dwarf2_per_objfile *dwarf2_per_objfile)
@@ -2693,7 +2693,7 @@ dwarf2_get_dwz_file (struct dwarf2_per_objfile *dwarf2_per_objfile)
}
if (dwz_bfd == NULL)
@ -1120,7 +1120,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
if (dwz_bfd == NULL)
error (_("could not find '.gnu_debugaltlink' file for %s"),
@@ -6225,7 +6225,7 @@ get_gdb_index_contents_from_section (objfile *obj, T *section_owner)
@@ -6227,7 +6227,7 @@ get_gdb_index_contents_from_section (objfile *obj, T *section_owner)
static gdb::array_view<const gdb_byte>
get_gdb_index_contents_from_cache (objfile *obj, dwarf2_per_objfile *dwarf2_obj)
{
@ -1129,7 +1129,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
if (build_id == nullptr)
return {};
@@ -6238,7 +6238,7 @@ get_gdb_index_contents_from_cache (objfile *obj, dwarf2_per_objfile *dwarf2_obj)
@@ -6240,7 +6240,7 @@ get_gdb_index_contents_from_cache (objfile *obj, dwarf2_per_objfile *dwarf2_obj)
static gdb::array_view<const gdb_byte>
get_gdb_index_contents_from_cache_dwz (objfile *obj, dwz_file *dwz)
{
@ -1141,7 +1141,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
diff --git a/gdb/elfread.c b/gdb/elfread.c
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -1284,7 +1284,9 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
@@ -1298,7 +1298,9 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
&& objfile->separate_debug_objfile == NULL
&& objfile->separate_debug_objfile_backlink == NULL)
{
@ -1152,21 +1152,25 @@ diff --git a/gdb/elfread.c b/gdb/elfread.c
if (debugfile.empty ())
debugfile = find_separate_debug_file_by_debuglink (objfile);
@@ -1296,6 +1298,10 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
@@ -1310,8 +1312,12 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
symbol_file_add_separate (debug_bfd.get (), debugfile.c_str (),
symfile_flags, objfile);
}
- else
- has_dwarf2 = false;
+ /* Check if any separate debug info has been extracted out. */
+ else if (bfd_get_section_by_name (objfile->obfd, ".gnu_debuglink")
+ != NULL)
+ debug_print_missing (objfile_name (objfile), build_id_filename.get ());
+ else
+ has_dwarf2 = false;
}
}
/* Read the CTF section only if there is no DWARF info. */
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -625,6 +625,10 @@ struct objfile
@@ -627,6 +627,10 @@ struct objfile
htab_up static_links;
};
@ -1189,7 +1193,7 @@ diff --git a/gdb/python/py-objfile.c b/gdb/python/py-objfile.c
}
catch (const gdb_exception &except)
{
@@ -601,7 +601,7 @@ objfpy_lookup_objfile_by_build_id (const char *build_id)
@@ -600,7 +600,7 @@ objfpy_lookup_objfile_by_build_id (const char *build_id)
/* Don't return separate debug files. */
if (objfile->separate_debug_objfile_backlink != NULL)
continue;
@ -1336,7 +1340,7 @@ diff --git a/gdb/testsuite/gdb.base/new-ui-pending-input.exp b/gdb/testsuite/gdb
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -1803,6 +1803,17 @@ proc default_gdb_start { } {
@@ -1841,6 +1841,17 @@ proc default_gdb_start { } {
}
}

View File

@ -45,7 +45,7 @@ diff --git a/gdb/extension.c b/gdb/extension.c
diff --git a/gdb/top.c b/gdb/top.c
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -1666,7 +1666,13 @@ quit_force (int *exit_arg, int from_tty)
@@ -1664,7 +1664,13 @@ quit_force (int *exit_arg, int from_tty)
qt.from_tty = from_tty;
@ -62,7 +62,7 @@ diff --git a/gdb/top.c b/gdb/top.c
diff --git a/gdb/utils.c b/gdb/utils.c
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -101,6 +101,13 @@ static std::chrono::steady_clock::duration prompt_for_continue_wait_time;
@@ -102,6 +102,13 @@ static std::chrono::steady_clock::duration prompt_for_continue_wait_time;
static bool debug_timestamp = false;

View File

@ -8,7 +8,7 @@ Subject: gdb-archer-pie-addons-keep-disabled.patch
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -15385,6 +15385,50 @@ static struct cmd_list_element *enablebreaklist = NULL;
@@ -15377,6 +15377,50 @@ static struct cmd_list_element *enablebreaklist = NULL;
cmd_list_element *commands_cmd_element = nullptr;
@ -75,7 +75,7 @@ diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -825,6 +825,11 @@ objfile_relocate1 (struct objfile *objfile,
@@ -827,6 +827,11 @@ objfile_relocate1 (struct objfile *objfile,
obj_section_addr (s));
}

View File

@ -51,7 +51,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
diff --git a/gdb/value.c b/gdb/value.c
--- a/gdb/value.c
+++ b/gdb/value.c
@@ -2827,7 +2827,8 @@ value_static_field (struct type *type, int fieldno)
@@ -2829,7 +2829,8 @@ value_static_field (struct type *type, int fieldno)
{
case FIELD_LOC_KIND_PHYSADDR:
retval = value_at_lazy (TYPE_FIELD_TYPE (type, fieldno),

View File

@ -161,7 +161,7 @@ diff --git a/gdb/testsuite/gdb.python/py-frame.exp b/gdb/testsuite/gdb.python/py
diff --git a/gdb/testsuite/gdb.python/py-value.exp b/gdb/testsuite/gdb.python/py-value.exp
--- a/gdb/testsuite/gdb.python/py-value.exp
+++ b/gdb/testsuite/gdb.python/py-value.exp
@@ -412,6 +412,15 @@ proc test_value_after_death {} {
@@ -419,6 +419,15 @@ proc test_value_after_death {} {
"print value's type"
}
@ -177,7 +177,7 @@ diff --git a/gdb/testsuite/gdb.python/py-value.exp b/gdb/testsuite/gdb.python/py
# Regression test for invalid subscript operations. The bug was that
# the type of the value was not being checked before allowing a
# subscript operation to proceed.
@@ -598,6 +607,7 @@ test_value_in_inferior
@@ -606,6 +615,7 @@ test_value_in_inferior
test_value_from_buffer
test_inferior_function_call
test_value_after_death

View File

@ -14,7 +14,7 @@ printed, but a default backtrace will occur in this case.
diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c
--- a/gdb/python/py-framefilter.c
+++ b/gdb/python/py-framefilter.c
@@ -1203,6 +1203,7 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang,
@@ -1204,6 +1204,7 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang,
htab_eq_pointer,
NULL));
@ -22,7 +22,7 @@ diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c
while (true)
{
gdbpy_ref<> item (PyIter_Next (iterable.get ()));
@@ -1211,8 +1212,8 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang,
@@ -1212,8 +1213,8 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang,
{
if (PyErr_Occurred ())
{
@ -33,7 +33,7 @@ diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c
}
break;
}
@@ -1244,7 +1245,8 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang,
@@ -1245,7 +1246,8 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang,
/* Do not exit on error printing a single frame. Print the
error and continue with other frames. */
if (success == EXT_LANG_BT_ERROR)

View File

@ -80,7 +80,7 @@ gdb/testsuite/ChangeLog
diff --git a/gdb/main.c b/gdb/main.c
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -1128,7 +1128,10 @@ captured_main_1 (struct captured_main_args *context)
@@ -1125,7 +1125,10 @@ captured_main_1 (struct captured_main_args *context)
{
ret = catch_command_errors (attach_command, pid_or_core_arg,
!batch_flag);

View File

@ -9,7 +9,7 @@ Subject: gdb-container-rh-pkg.patch
diff --git a/gdb/remote.c b/gdb/remote.c
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -13905,7 +13905,17 @@ remote_target::pid_to_exec_file (int pid)
@@ -13904,7 +13904,17 @@ remote_target::pid_to_exec_file (int pid)
char *annex = NULL;
if (packet_support (PACKET_qXfer_exec_file) != PACKET_ENABLE)

View File

@ -42,7 +42,7 @@ gdb/
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -10602,6 +10602,13 @@ private:
@@ -10608,6 +10608,13 @@ private:
static void
process_die (struct die_info *die, struct dwarf2_cu *cu)
{
@ -153,7 +153,7 @@ diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
if (resume_many)
iterate_over_lwps (ptid, [=] (struct lwp_info *info)
{
@@ -3766,6 +3808,10 @@ linux_nat_target::mourn_inferior ()
@@ -3769,6 +3811,10 @@ linux_nat_target::mourn_inferior ()
/* Let the arch-specific native code know this process is gone. */
linux_target->low_forget_process (pid);

View File

@ -56,7 +56,7 @@ diff --git a/gdb/gdb.c b/gdb/gdb.c
diff --git a/gdb/nat/linux-btrace.h b/gdb/nat/linux-btrace.h
--- a/gdb/nat/linux-btrace.h
+++ b/gdb/nat/linux-btrace.h
@@ -28,6 +28,177 @@
@@ -27,6 +27,177 @@
# include <linux/perf_event.h>
#endif

View File

@ -14,7 +14,7 @@ Bug in FSF GDB exploited by the ptrace-on-utrace interaction.
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -11881,6 +11881,8 @@ update_global_location_list (enum ugll_insert_mode insert_mode)
@@ -11877,6 +11877,8 @@ update_global_location_list (enum ugll_insert_mode insert_mode)
traps we can no longer explain. */
old_loc->events_till_retirement = 3 * (thread_count () + 1);

View File

@ -22,7 +22,7 @@ And adjust its testcase.
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
--- a/gdb/f-valprint.c
+++ b/gdb/f-valprint.c
@@ -313,8 +313,22 @@ f_val_print (struct type *type, int embedded_offset,
@@ -314,8 +314,22 @@ f_val_print (struct type *type, int embedded_offset,
original_value, &opts, 0, stream);
}
else

View File

@ -37,7 +37,7 @@ dbfd7140bf4c0500d1f5d192be781f83f78f7922
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -17878,7 +17878,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -17890,7 +17890,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
struct type *base_type, *orig_base_type;
struct type *range_type;
struct attribute *attr;
@ -46,7 +46,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
int low_default_is_valid;
int high_bound_is_count = 0;
const char *name;
@@ -17899,7 +17899,9 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -17911,7 +17911,9 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
low.kind = PROP_CONST;
high.kind = PROP_CONST;
@ -56,7 +56,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
/* Set LOW_DEFAULT_IS_VALID if current language and DWARF version allow
omitting DW_AT_lower_bound. */
@@ -17932,6 +17934,14 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -17944,6 +17946,14 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
break;
}
@ -71,7 +71,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
attr = dwarf2_attr (die, DW_AT_lower_bound, cu);
if (attr)
attr_to_dynamic_prop (attr, die, cu, &low, base_type);
@@ -17990,7 +18000,8 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -18002,7 +18012,8 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
&& !TYPE_UNSIGNED (base_type) && (high.data.const_val & negative_mask))
high.data.const_val |= negative_mask;
@ -546,7 +546,7 @@ diff --git a/gdb/eval.c b/gdb/eval.c
diff --git a/gdb/expprint.c b/gdb/expprint.c
--- a/gdb/expprint.c
+++ b/gdb/expprint.c
@@ -578,17 +578,14 @@ print_subexp_standard (struct expression *exp, int *pos,
@@ -580,17 +580,14 @@ print_subexp_standard (struct expression *exp, int *pos,
longest_to_int (exp->elts[pc + 1].longconst);
*pos += 2;
@ -568,7 +568,7 @@ diff --git a/gdb/expprint.c b/gdb/expprint.c
print_subexp (exp, pos, stream, PREC_ABOVE_COMMA);
fputs_filtered (")", stream);
return;
@@ -1105,22 +1102,24 @@ dump_subexp_body_standard (struct expression *exp,
@@ -1107,22 +1104,24 @@ dump_subexp_body_standard (struct expression *exp,
switch (range_type)
{
@ -601,7 +601,7 @@ diff --git a/gdb/expprint.c b/gdb/expprint.c
fputs_filtered ("ExclusiveRange 'EXP..EXP'", stream);
break;
default:
@@ -1128,11 +1127,9 @@ dump_subexp_body_standard (struct expression *exp,
@@ -1130,11 +1129,9 @@ dump_subexp_body_standard (struct expression *exp,
break;
}
@ -742,7 +742,7 @@ diff --git a/gdb/f-exp.y b/gdb/f-exp.y
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
--- a/gdb/f-valprint.c
+++ b/gdb/f-valprint.c
@@ -119,8 +119,14 @@ f77_print_array_1 (int nss, int ndimensions, struct type *type,
@@ -120,8 +120,14 @@ f77_print_array_1 (int nss, int ndimensions, struct type *type,
if (nss != ndimensions)
{
@ -761,7 +761,7 @@ diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -914,7 +914,8 @@ struct type *
@@ -913,7 +913,8 @@ struct type *
create_range_type (struct type *result_type, struct type *index_type,
const struct dynamic_prop *low_bound,
const struct dynamic_prop *high_bound,
@ -771,7 +771,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
{
/* The INDEX_TYPE should be a type capable of holding the upper and lower
bounds, as such a zero sized, or void type makes no sense. */
@@ -935,6 +936,7 @@ create_range_type (struct type *result_type, struct type *index_type,
@@ -934,6 +935,7 @@ create_range_type (struct type *result_type, struct type *index_type,
TYPE_RANGE_DATA (result_type)->low = *low_bound;
TYPE_RANGE_DATA (result_type)->high = *high_bound;
TYPE_RANGE_DATA (result_type)->bias = bias;
@ -779,7 +779,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
if (low_bound->kind == PROP_CONST && low_bound->data.const_val >= 0)
TYPE_UNSIGNED (result_type) = 1;
@@ -963,7 +965,7 @@ struct type *
@@ -962,7 +964,7 @@ struct type *
create_static_range_type (struct type *result_type, struct type *index_type,
LONGEST low_bound, LONGEST high_bound)
{
@ -788,7 +788,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
low.kind = PROP_CONST;
low.data.const_val = low_bound;
@@ -971,7 +973,11 @@ create_static_range_type (struct type *result_type, struct type *index_type,
@@ -970,7 +972,11 @@ create_static_range_type (struct type *result_type, struct type *index_type,
high.kind = PROP_CONST;
high.data.const_val = high_bound;
@ -801,7 +801,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
return result_type;
}
@@ -1189,16 +1195,20 @@ create_array_type_with_stride (struct type *result_type,
@@ -1188,16 +1194,20 @@ create_array_type_with_stride (struct type *result_type,
&& (!type_not_associated (result_type)
&& !type_not_allocated (result_type)))
{
@ -823,7 +823,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
else if (bit_stride > 0)
TYPE_LENGTH (result_type) =
(bit_stride * (high_bound - low_bound + 1) + 7) / 8;
@@ -1983,7 +1993,7 @@ resolve_dynamic_range (struct type *dyn_range_type,
@@ -1982,7 +1992,7 @@ resolve_dynamic_range (struct type *dyn_range_type,
CORE_ADDR value;
struct type *static_range_type, *static_target_type;
const struct dynamic_prop *prop;
@ -832,7 +832,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
gdb_assert (TYPE_CODE (dyn_range_type) == TYPE_CODE_RANGE);
@@ -2015,13 +2025,21 @@ resolve_dynamic_range (struct type *dyn_range_type,
@@ -2014,13 +2024,21 @@ resolve_dynamic_range (struct type *dyn_range_type,
high_bound.data.const_val = 0;
}
@ -955,7 +955,7 @@ diff --git a/gdb/parse.c b/gdb/parse.c
diff --git a/gdb/rust-exp.y b/gdb/rust-exp.y
--- a/gdb/rust-exp.y
+++ b/gdb/rust-exp.y
@@ -2493,24 +2493,28 @@ rust_parser::convert_ast_to_expression (const struct rust_op *operation,
@@ -2492,24 +2492,28 @@ rust_parser::convert_ast_to_expression (const struct rust_op *operation,
case OP_RANGE:
{
@ -995,7 +995,7 @@ diff --git a/gdb/rust-exp.y b/gdb/rust-exp.y
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
--- a/gdb/rust-lang.c
+++ b/gdb/rust-lang.c
@@ -1221,13 +1221,11 @@ rust_range (struct expression *exp, int *pos, enum noside noside)
@@ -1224,13 +1224,11 @@ rust_range (struct expression *exp, int *pos, enum noside noside)
kind = (enum range_type) longest_to_int (exp->elts[*pos + 1].longconst);
*pos += 3;
@ -1012,7 +1012,7 @@ diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
if (noside == EVAL_SKIP)
return value_from_longest (builtin_type (exp->gdbarch)->builtin_int, 1);
@@ -1316,7 +1314,7 @@ rust_compute_range (struct type *type, struct value *range,
@@ -1319,7 +1317,7 @@ rust_compute_range (struct type *type, struct value *range,
*low = 0;
*high = 0;
@ -1021,7 +1021,7 @@ diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
if (TYPE_NFIELDS (type) == 0)
return;
@@ -1324,15 +1322,14 @@ rust_compute_range (struct type *type, struct value *range,
@@ -1327,15 +1325,14 @@ rust_compute_range (struct type *type, struct value *range,
i = 0;
if (strcmp (TYPE_FIELD_NAME (type, 0), "start") == 0)
{
@ -1039,7 +1039,7 @@ diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
*high = value_as_long (value_field (range, i));
if (rust_inclusive_range_type_p (type))
@@ -1350,7 +1347,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside,
@@ -1353,7 +1350,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside,
struct type *rhstype;
LONGEST low, high_bound;
/* Initialized to appease the compiler. */
@ -1048,7 +1048,7 @@ diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
LONGEST high = 0;
int want_slice = 0;
@@ -1448,7 +1445,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside,
@@ -1451,7 +1448,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside,
error (_("Cannot subscript non-array type"));
if (want_slice
@ -1057,7 +1057,7 @@ diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
low = low_bound;
if (low < 0)
error (_("Index less than zero"));
@@ -1466,7 +1463,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside,
@@ -1469,7 +1466,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside,
CORE_ADDR addr;
struct value *addrval, *tem;

View File

@ -33,7 +33,7 @@ git diff --stat -p gdb/master...gdb/users/bheckel/fortran-vla-strings
diff --git a/gdb/NEWS b/gdb/NEWS
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -689,6 +689,8 @@ SH-5/SH64 running OpenBSD SH-5/SH64 support in sh*-*-openbsd*
@@ -701,6 +701,8 @@ SH-5/SH64 running OpenBSD SH-5/SH64 support in sh*-*-openbsd*
*** Changes in GDB 8.1
@ -77,7 +77,7 @@ diff --git a/gdb/c-valprint.c b/gdb/c-valprint.c
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -1818,7 +1818,10 @@ static void read_signatured_type (struct signatured_type *);
@@ -1805,7 +1805,10 @@ static void read_signatured_type (struct signatured_type *);
static int attr_to_dynamic_prop (const struct attribute *attr,
struct die_info *die, struct dwarf2_cu *cu,
@ -89,7 +89,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
/* memory allocation interface */
@@ -13735,7 +13738,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
@@ -13747,7 +13750,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
newobj->static_link
= XOBNEW (&objfile->objfile_obstack, struct dynamic_prop);
attr_to_dynamic_prop (attr, die, cu, newobj->static_link,
@ -98,7 +98,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
}
cu->list_in_scope = cu->get_builder ()->get_local_symbols ();
@@ -16497,7 +16500,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -16509,7 +16512,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
byte_stride_prop
= (struct dynamic_prop *) alloca (sizeof (struct dynamic_prop));
stride_ok = attr_to_dynamic_prop (attr, die, cu, byte_stride_prop,
@ -107,7 +107,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
if (!stride_ok)
{
complaint (_("unable to read array DW_AT_byte_stride "
@@ -17255,29 +17258,90 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -17267,29 +17270,90 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
struct gdbarch *gdbarch = get_objfile_arch (objfile);
struct type *type, *range_type, *index_type, *char_type;
struct attribute *attr;
@ -209,7 +209,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
char_type = language_string_char_type (cu->language_defn, gdbarch);
type = create_string_type (NULL, char_type, range_type);
@@ -17710,7 +17774,8 @@ read_base_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -17722,7 +17786,8 @@ read_base_type (struct die_info *die, struct dwarf2_cu *cu)
static int
attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
struct dwarf2_cu *cu, struct dynamic_prop *prop,
@ -219,7 +219,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
{
struct dwarf2_property_baton *baton;
struct obstack *obstack
@@ -17729,9 +17794,30 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
@@ -17741,9 +17806,30 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
baton->locexpr.size = DW_BLOCK (attr)->size;
baton->locexpr.data = DW_BLOCK (attr)->data;
baton->locexpr.is_reference = false;
@ -251,7 +251,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
}
else if (attr_form_is_ref (attr))
{
@@ -17764,9 +17850,29 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
@@ -17776,9 +17862,29 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
baton = XOBNEW (obstack, struct dwarf2_property_baton);
baton->property_type = die_type (target_die, target_cu);
baton->locexpr.per_cu = cu->per_cu;
@ -283,7 +283,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
prop->data.baton = baton;
prop->kind = PROP_LOCEXPR;
gdb_assert (prop->data.baton != NULL);
@@ -17936,7 +18042,8 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -17948,7 +18054,8 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
attr = dwarf2_attr (die, DW_AT_byte_stride, cu);
if (attr)
@ -293,7 +293,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
complaint (_("Missing DW_AT_byte_stride "
"- DIE at 0x%s [in module %s]"),
sect_offset_str (die->sect_off),
@@ -17944,7 +18051,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -17956,7 +18063,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
attr = dwarf2_attr (die, DW_AT_lower_bound, cu);
if (attr)
@ -302,7 +302,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
else if (!low_default_is_valid)
complaint (_("Missing DW_AT_lower_bound "
"- DIE at %s [in module %s]"),
@@ -17953,10 +18060,10 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -17965,10 +18072,10 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
struct attribute *attr_ub, *attr_count;
attr = attr_ub = dwarf2_attr (die, DW_AT_upper_bound, cu);
@ -315,7 +315,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
{
/* If bounds are constant do the final calculation here. */
if (low.kind == PROP_CONST && high.kind == PROP_CONST)
@@ -25646,7 +25753,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
@@ -25679,7 +25786,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
{
struct type *prop_type
= dwarf2_per_cu_addr_sized_int_type (cu->per_cu, false);
@ -324,7 +324,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
add_dyn_prop (DYN_PROP_ALLOCATED, prop, type);
}
else if (attr != NULL)
@@ -25662,7 +25769,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
@@ -25695,7 +25802,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
{
struct type *prop_type
= dwarf2_per_cu_addr_sized_int_type (cu->per_cu, false);
@ -333,7 +333,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
add_dyn_prop (DYN_PROP_ASSOCIATED, prop, type);
}
else if (attr != NULL)
@@ -25675,7 +25782,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
@@ -25708,7 +25815,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
/* Read DW_AT_data_location and set in type. */
attr = dwarf2_attr (die, DW_AT_data_location, cu);
if (attr_to_dynamic_prop (attr, die, cu, &prop,
@ -345,7 +345,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
--- a/gdb/f-typeprint.c
+++ b/gdb/f-typeprint.c
@@ -197,15 +197,14 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
@@ -198,15 +198,14 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
print_rank_only = true;
else if ((TYPE_ASSOCIATED_PROP (type)
&& PROP_CONST != TYPE_DYN_PROP_KIND (TYPE_ASSOCIATED_PROP (type)))
@ -369,7 +369,7 @@ diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
if (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_ARRAY)
f_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0,
@@ -217,8 +216,9 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
@@ -218,8 +217,9 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
else
{
LONGEST lower_bound = f77_get_lowerbound (type);
@ -380,7 +380,7 @@ diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
/* Make sure that, if we have an assumed size array, we
print out a warning and print the upperbound as '*'. */
@@ -229,7 +229,7 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
@@ -230,7 +230,7 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
{
LONGEST upper_bound = f77_get_upperbound (type);
@ -389,7 +389,7 @@ diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
}
}
@@ -249,7 +249,7 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
@@ -250,7 +250,7 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
case TYPE_CODE_REF:
f_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, 1, 0,
arrayprint_recurse_level, false);
@ -401,7 +401,7 @@ diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -1906,7 +1906,8 @@ is_dynamic_type_internal (struct type *type, int top_level)
@@ -1905,7 +1905,8 @@ is_dynamic_type_internal (struct type *type, int top_level)
type = check_typedef (type);
/* We only want to recognize references at the outermost level. */
@ -411,7 +411,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
type = check_typedef (TYPE_TARGET_TYPE (type));
/* Types that have a dynamic TYPE_DATA_LOCATION are considered
@@ -1940,6 +1941,7 @@ is_dynamic_type_internal (struct type *type, int top_level)
@@ -1939,6 +1940,7 @@ is_dynamic_type_internal (struct type *type, int top_level)
}
case TYPE_CODE_ARRAY:
@ -419,7 +419,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
{
gdb_assert (TYPE_NFIELDS (type) == 1);
@@ -2059,7 +2061,8 @@ resolve_dynamic_array (struct type *type,
@@ -2058,7 +2060,8 @@ resolve_dynamic_array (struct type *type,
struct dynamic_prop *prop;
unsigned int bit_stride = 0;
@ -429,7 +429,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
type = copy_type (type);
@@ -2084,11 +2087,15 @@ resolve_dynamic_array (struct type *type,
@@ -2083,11 +2086,15 @@ resolve_dynamic_array (struct type *type,
ary_dim = check_typedef (TYPE_TARGET_TYPE (elt_type));
@ -446,7 +446,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
prop = get_dyn_prop (DYN_PROP_BYTE_STRIDE, type);
if (prop != NULL)
{
@@ -2240,6 +2247,28 @@ resolve_dynamic_struct (struct type *type,
@@ -2239,6 +2246,28 @@ resolve_dynamic_struct (struct type *type,
return resolved_type;
}
@ -475,7 +475,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
/* Worker for resolved_dynamic_type. */
static struct type *
@@ -2288,7 +2317,12 @@ resolve_dynamic_type_internal (struct type *type,
@@ -2287,7 +2316,12 @@ resolve_dynamic_type_internal (struct type *type,
break;
}
@ -1019,7 +1019,7 @@ diff --git a/gdb/testsuite/gdb.fortran/vla-value.exp b/gdb/testsuite/gdb.fortran
diff --git a/gdb/typeprint.c b/gdb/typeprint.c
--- a/gdb/typeprint.c
+++ b/gdb/typeprint.c
@@ -572,6 +572,25 @@ whatis_exp (const char *exp, int show)
@@ -574,6 +574,25 @@ whatis_exp (const char *exp, int show)
printf_filtered (" */\n");
}
@ -1081,7 +1081,7 @@ diff --git a/gdb/valops.c b/gdb/valops.c
diff --git a/gdb/valprint.c b/gdb/valprint.c
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
@@ -1144,12 +1144,6 @@ value_check_printable (struct value *val, struct ui_file *stream,
@@ -1149,12 +1149,6 @@ value_check_printable (struct value *val, struct ui_file *stream,
return 0;
}

View File

@ -27,15 +27,15 @@
Name: %{?scl_prefix}gdb
# Freeze it when GDB gets branched
%global snapsrc 20190924
%global snapsrc 20191018
# See timestamp of source gnulib installed into gdb/gnulib/ .
%global snapgnulib 20161115
%global tarname gdb-%{version}
Version: 8.3.50.%{snapsrc}
Version: 9.0.50.%{snapsrc}
# 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: 28%{?dist}
Release: 1%{?dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and LGPLv3+ and BSD and Public Domain and GFDL
# Do not provide URL for snapshots as the file lasts there only for 2 days.
@ -101,6 +101,9 @@ Conflicts: elfutils < 0.149
# https://fedorahosted.org/fpc/ticket/43 https://fedorahosted.org/fpc/ticket/109
Provides: bundled(libiberty) = %{snapsrc}
Provides: bundled(gnulib) = %{snapgnulib}
# The libraries in the top-level directory (libbfd, libopcodes,
# libctf) are covered by the "bundled(binutils)" below. See ticket
# #109, as mentioned above.
Provides: bundled(binutils) = %{snapsrc}
# https://fedorahosted.org/fpc/ticket/130
Provides: bundled(md5-gcc) = %{snapsrc}
@ -988,7 +991,7 @@ rm -f $RPM_BUILD_ROOT%{_infodir}/configure*
# Just exclude the header files in the top directory, and don't exclude
# the gdb/ directory, as it contains jit-reader.h.
rm -rf $RPM_BUILD_ROOT%{_includedir}/*.h
rm -rf $RPM_BUILD_ROOT/%{_libdir}/lib{bfd*,opcodes*,iberty*}
rm -rf $RPM_BUILD_ROOT/%{_libdir}/lib{bfd*,opcodes*,iberty*,ctf*}
# pstack obsoletion
@ -1143,6 +1146,11 @@ fi
%endif
%changelog
* Fri Oct 18 2019 Sergio Durigan Junior <sergiodj@redhat.com> - 9.0.50.20191018-1
- Rebase to FSF GDB 9.0.50.20191018 (9.1pre).
- Expand comment on "bundled(binutils)".
- Remove libctf's files from RPM_BUILD_ROOT.
* Wed Oct 9 2019 Jerry James <loganjerry@gmail.com> - 8.3.50.20190924-28
- Rebuild for mpfr 4

View File

@ -1,3 +1,3 @@
SHA512 (gdb-libstdc++-v3-python-8.1.1-20180626.tar.xz) = a8b1c54dd348cfeb37da73f968742896be3dd13a4215f8d8519870c2abea915f5176c3fa6989ddd10f20020a16f0fab20cbae68ee8d58a82234d8778023520f8
SHA512 (v2.0.1.tar.gz) = e38e93908c3fbf1f2384cfca381eaf4bf667033de678041bd440adac8bbce4757b77304868896256ed72c202ee22ba1646aada90125029f14f5bffaf828a7df4
SHA512 (gdb-8.3.50.20190924.tar.xz) = 0db49142d9ce93b3205596f97344e1b488ef74d0640c311fea929aa702074a221fd2c2558d8e2df917fb0398af5d670b1d200c30246b0535a6ae64a2c8ae0eb6
SHA512 (gdb-9.0.50.20191018.tar.xz) = a0fdf66d42f766c468b6a084c0e716a39fc28afd60227e95e15b0a1aa19fe132d17f7ec2ba6fb9ad296e3e140561835896ccdac48507c31fae498341bc397e93