Rebase to FSF GDB 8.3.50.20190924 (8.4pre).

Update 'gdb-6.6-buildid-locate.patch'.
This commit is contained in:
Sergio Durigan Junior 2019-09-25 17:39:24 -04:00
parent 8ac06474ff
commit 0a2f2a5526
23 changed files with 147 additions and 115 deletions

2
.gitignore vendored
View File

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

View File

@ -1 +1 @@
8a9455cc824134d40943c34dc2cd44bee8275083 3868d2e9f18d0351c472c0d6c8864c610e62598a

View File

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

View File

@ -44,7 +44,7 @@ glibc-debuginfo-2.7-2.x86_64: /usr/lib/debug/lib64/libc.so.6.debug:
diff --git a/gdb/printcmd.c b/gdb/printcmd.c diff --git a/gdb/printcmd.c b/gdb/printcmd.c
--- a/gdb/printcmd.c --- a/gdb/printcmd.c
+++ b/gdb/printcmd.c +++ b/gdb/printcmd.c
@@ -1202,6 +1202,10 @@ print_command_1 (const char *args, int voidprint) @@ -1212,6 +1212,10 @@ print_command_1 (const char *args, int voidprint)
if (exp != nullptr && *exp) if (exp != nullptr && *exp)
{ {

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 diff --git a/gdb/symtab.c b/gdb/symtab.c
--- a/gdb/symtab.c --- a/gdb/symtab.c
+++ b/gdb/symtab.c +++ b/gdb/symtab.c
@@ -3158,6 +3158,13 @@ find_pc_sect_line (CORE_ADDR pc, struct obj_section *section, int notcurrent) @@ -3148,6 +3148,13 @@ find_pc_sect_line (CORE_ADDR pc, struct obj_section *section, int notcurrent)
SYMBOL_LINKAGE_NAME (msymbol)); */ SYMBOL_LINKAGE_NAME (msymbol)); */
; ;
/* fall through */ /* 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 diff --git a/gdb/main.c b/gdb/main.c
--- a/gdb/main.c --- a/gdb/main.c
+++ b/gdb/main.c +++ b/gdb/main.c
@@ -439,6 +439,34 @@ struct cmdarg @@ -445,6 +445,34 @@ struct cmdarg
char *string; char *string;
}; };
@ -155,7 +155,7 @@ diff --git a/gdb/main.c b/gdb/main.c
static void static void
captured_main_1 (struct captured_main_args *context) captured_main_1 (struct captured_main_args *context)
{ {
@@ -882,6 +910,8 @@ captured_main_1 (struct captured_main_args *context) @@ -890,6 +918,8 @@ captured_main_1 (struct captured_main_args *context)
{ {
symarg = argv[optind]; symarg = argv[optind];
execarg = argv[optind]; execarg = argv[optind];
@ -164,7 +164,7 @@ diff --git a/gdb/main.c b/gdb/main.c
optind++; optind++;
} }
@@ -1032,12 +1062,25 @@ captured_main_1 (struct captured_main_args *context) @@ -1043,12 +1073,25 @@ captured_main_1 (struct captured_main_args *context)
&& symarg != NULL && symarg != NULL
&& strcmp (execarg, symarg) == 0) && 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 diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
--- a/gdb/dwarf2read.c --- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c
@@ -3462,6 +3462,16 @@ read_gdb_index_from_buffer (struct objfile *objfile, @@ -3470,6 +3470,16 @@ read_gdb_index_from_buffer (struct objfile *objfile,
"set use-deprecated-index-sections on". */ "set use-deprecated-index-sections on". */
if (version < 6 && !deprecated_ok) if (version < 6 && !deprecated_ok)
{ {
@ -115,7 +115,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
static int warning_printed = 0; static int warning_printed = 0;
if (!warning_printed) if (!warning_printed)
{ {
@@ -3473,6 +3483,10 @@ to use the section anyway."), @@ -3481,6 +3491,10 @@ to use the section anyway."),
warning_printed = 1; warning_printed = 1;
} }
return 0; return 0;

View File

@ -14,7 +14,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1339862
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
--- a/gdb/solib-svr4.c --- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c +++ b/gdb/solib-svr4.c
@@ -1342,14 +1342,27 @@ svr4_read_so_list (svr4_info *info, CORE_ADDR lm, CORE_ADDR prev_lm, @@ -1346,14 +1346,27 @@ svr4_read_so_list (svr4_info *info, CORE_ADDR lm, CORE_ADDR prev_lm,
} }
{ {
@ -44,7 +44,7 @@ diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
if (build_id != NULL) if (build_id != NULL)
{ {
char *name, *build_id_filename; char *name, *build_id_filename;
@@ -1364,23 +1377,7 @@ svr4_read_so_list (svr4_info *info, CORE_ADDR lm, CORE_ADDR prev_lm, @@ -1368,23 +1381,7 @@ svr4_read_so_list (svr4_info *info, CORE_ADDR lm, CORE_ADDR prev_lm,
xfree (name); xfree (name);
} }
else else

View File

@ -6,6 +6,30 @@ Subject: gdb-6.6-buildid-locate.patch
;; New locating of the matching binaries from the pure core file (build-id). ;; New locating of the matching binaries from the pure core file (build-id).
;;=push+jan ;;=push+jan
diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h
--- a/bfd/libbfd-in.h
+++ b/bfd/libbfd-in.h
@@ -127,7 +127,7 @@ static inline char *
bfd_strdup (const char *str)
{
size_t len = strlen (str) + 1;
- char *buf = bfd_malloc (len);
+ char *buf = (char *) bfd_malloc (len);
if (buf != NULL)
memcpy (buf, str, len);
return buf;
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -132,7 +132,7 @@ static inline char *
bfd_strdup (const char *str)
{
size_t len = strlen (str) + 1;
- char *buf = bfd_malloc (len);
+ char *buf = (char *) bfd_malloc (len);
if (buf != NULL)
memcpy (buf, str, len);
return buf;
diff --git a/gdb/build-id.c b/gdb/build-id.c diff --git a/gdb/build-id.c b/gdb/build-id.c
--- a/gdb/build-id.c --- a/gdb/build-id.c
+++ b/gdb/build-id.c +++ b/gdb/build-id.c
@ -371,7 +395,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
+ +
+static void build_id_addr_candidate (bfd *abfd, asection *sect, void *obj) +static void build_id_addr_candidate (bfd *abfd, asection *sect, void *obj)
+{ +{
+ if (build_id_addr >= bfd_section_vma (abfd, sect)) + if (build_id_addr >= bfd_section_vma (sect))
+ { + {
+ struct build_id_addr_sect *candidate; + struct build_id_addr_sect *candidate;
+ +
@ -406,7 +430,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
+ candidate = candidate->next) + candidate = candidate->next)
+ { + {
+ i_phdr = elf_get_phdr (core_bfd, + i_phdr = elf_get_phdr (core_bfd,
+ bfd_section_vma (core_bfd, candidate->sect), + bfd_section_vma (candidate->sect),
+ &e_phnum, &loadbase); + &e_phnum, &loadbase);
+ if (i_phdr != NULL) + if (i_phdr != NULL)
+ break; + break;
@ -687,7 +711,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
+ if (abfd == NULL) + if (abfd == NULL)
+ return NULL; + return NULL;
+ +
+ result = xstrdup (bfd_get_filename (abfd)); + result = xstrdup (bfd_get_filename (abfd.get ()));
+ return result; + return result;
+} +}
+ +
@ -958,7 +982,7 @@ diff --git a/gdb/corelow.c b/gdb/corelow.c
inferior_ptid = ptid; /* Yes, make it current. */ inferior_ptid = ptid; /* Yes, make it current. */
} }
+static int build_id_core_loads = 1; +static bool build_id_core_loads = true;
+ +
+static void +static void
+build_id_locate_exec (int from_tty) +build_id_locate_exec (int from_tty)
@ -1013,13 +1037,13 @@ diff --git a/gdb/corelow.c b/gdb/corelow.c
+ loaded VDSO symbols. If it gets executed before bfd_map_over_sections + loaded VDSO symbols. If it gets executed before bfd_map_over_sections
+ INFERIOR_PTID is still not set and libthread_db initialization crashes on + INFERIOR_PTID is still not set and libthread_db initialization crashes on
+ PID == 0 in ps_pglobal_lookup. */ + PID == 0 in ps_pglobal_lookup. */
+ if (build_id_core_loads != 0) + if (build_id_core_loads != false)
+ build_id_locate_exec (from_tty); + build_id_locate_exec (from_tty);
+ +
post_create_inferior (target, from_tty); post_create_inferior (target, from_tty);
/* Now go through the target stack looking for threads since there /* Now go through the target stack looking for threads since there
@@ -1062,4 +1117,11 @@ void @@ -973,4 +1028,11 @@ void
_initialize_corelow (void) _initialize_corelow (void)
{ {
add_target (core_target_info, core_target_open, filename_completer); add_target (core_target_info, core_target_open, filename_completer);
@ -1034,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 diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
--- a/gdb/doc/gdb.texinfo --- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo
@@ -20591,6 +20591,27 @@ information files. @@ -20679,6 +20679,27 @@ information files.
@end table @end table
@ -1087,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 diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
--- a/gdb/dwarf2read.c --- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c
@@ -2683,7 +2683,7 @@ dwarf2_get_dwz_file (struct dwarf2_per_objfile *dwarf2_per_objfile) @@ -2691,7 +2691,7 @@ dwarf2_get_dwz_file (struct dwarf2_per_objfile *dwarf2_per_objfile)
} }
if (dwz_bfd == NULL) if (dwz_bfd == NULL)
@ -1096,7 +1120,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
if (dwz_bfd == NULL) if (dwz_bfd == NULL)
error (_("could not find '.gnu_debugaltlink' file for %s"), error (_("could not find '.gnu_debugaltlink' file for %s"),
@@ -6175,7 +6175,7 @@ get_gdb_index_contents_from_section (objfile *obj, T *section_owner) @@ -6225,7 +6225,7 @@ get_gdb_index_contents_from_section (objfile *obj, T *section_owner)
static gdb::array_view<const gdb_byte> static gdb::array_view<const gdb_byte>
get_gdb_index_contents_from_cache (objfile *obj, dwarf2_per_objfile *dwarf2_obj) get_gdb_index_contents_from_cache (objfile *obj, dwarf2_per_objfile *dwarf2_obj)
{ {
@ -1105,7 +1129,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
if (build_id == nullptr) if (build_id == nullptr)
return {}; return {};
@@ -6188,7 +6188,7 @@ get_gdb_index_contents_from_cache (objfile *obj, dwarf2_per_objfile *dwarf2_obj) @@ -6238,7 +6238,7 @@ get_gdb_index_contents_from_cache (objfile *obj, dwarf2_per_objfile *dwarf2_obj)
static gdb::array_view<const gdb_byte> static gdb::array_view<const gdb_byte>
get_gdb_index_contents_from_cache_dwz (objfile *obj, dwz_file *dwz) get_gdb_index_contents_from_cache_dwz (objfile *obj, dwz_file *dwz)
{ {
@ -1185,7 +1209,7 @@ diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
static struct link_map_offsets *svr4_fetch_link_map_offsets (void); static struct link_map_offsets *svr4_fetch_link_map_offsets (void);
static int svr4_have_link_map_offsets (void); static int svr4_have_link_map_offsets (void);
@@ -1340,9 +1341,51 @@ svr4_read_so_list (svr4_info *info, CORE_ADDR lm, CORE_ADDR prev_lm, @@ -1344,9 +1345,51 @@ svr4_read_so_list (svr4_info *info, CORE_ADDR lm, CORE_ADDR prev_lm,
continue; continue;
} }
@ -1312,7 +1336,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 diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
--- a/gdb/testsuite/lib/gdb.exp --- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp
@@ -1799,6 +1799,17 @@ proc default_gdb_start { } { @@ -1803,6 +1803,17 @@ proc default_gdb_start { } {
} }
} }

View File

@ -9,7 +9,7 @@ Subject: gdb-6.6-scheduler_locking-step-is-default.patch
diff --git a/gdb/infrun.c b/gdb/infrun.c diff --git a/gdb/infrun.c b/gdb/infrun.c
--- a/gdb/infrun.c --- a/gdb/infrun.c
+++ b/gdb/infrun.c +++ b/gdb/infrun.c
@@ -2065,7 +2065,7 @@ static const char *const scheduler_enums[] = { @@ -2063,7 +2063,7 @@ static const char *const scheduler_enums[] = {
schedlock_replay, schedlock_replay,
NULL NULL
}; };

View File

@ -64,7 +64,7 @@ diff --git a/gdb/utils.c b/gdb/utils.c
+++ b/gdb/utils.c +++ b/gdb/utils.c
@@ -101,6 +101,13 @@ static std::chrono::steady_clock::duration prompt_for_continue_wait_time; @@ -101,6 +101,13 @@ static std::chrono::steady_clock::duration prompt_for_continue_wait_time;
static int debug_timestamp = 0; static bool debug_timestamp = false;
+#ifdef NEED_DETACH_SIGSTOP +#ifdef NEED_DETACH_SIGSTOP
+/* Nonzero means we are already processing the quitting cleanups and we should +/* Nonzero means we are already processing the quitting cleanups and we should
@ -73,6 +73,6 @@ diff --git a/gdb/utils.c b/gdb/utils.c
+int quit_flag_cleanup; +int quit_flag_cleanup;
+#endif +#endif
+ +
/* Nonzero means that strings with character values >0x7F should be printed /* True means that strings with character values >0x7F should be printed
as octal escapes. Zero means just print the value (e.g. it's an as octal escapes. False means just print the value (e.g. it's an
international character, and the terminal or window can cope.) */ international character, and the terminal or window can cope.) */

View File

@ -62,7 +62,7 @@ diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
--- a/gdb/breakpoint.h --- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h +++ b/gdb/breakpoint.h
@@ -1689,6 +1689,9 @@ extern const char *ep_parse_optional_if_clause (const char **arg); @@ -1690,6 +1690,9 @@ extern const char *ep_parse_optional_if_clause (const char **arg);
UIOUT iff debugging multiple threads. */ UIOUT iff debugging multiple threads. */
extern void maybe_print_thread_hit_breakpoint (struct ui_out *uiout); extern void maybe_print_thread_hit_breakpoint (struct ui_out *uiout);

View File

@ -24,7 +24,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
CORE_ADDR physaddr; CORE_ADDR physaddr;
const char *physname; const char *physname;
@@ -1450,6 +1452,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *); @@ -1455,6 +1457,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *);
#define FIELD_ENUMVAL_LVAL(thisfld) ((thisfld).loc.enumval) #define FIELD_ENUMVAL_LVAL(thisfld) ((thisfld).loc.enumval)
#define FIELD_ENUMVAL(thisfld) (FIELD_ENUMVAL_LVAL (thisfld) + 0) #define FIELD_ENUMVAL(thisfld) (FIELD_ENUMVAL_LVAL (thisfld) + 0)
#define FIELD_STATIC_PHYSNAME(thisfld) ((thisfld).loc.physname) #define FIELD_STATIC_PHYSNAME(thisfld) ((thisfld).loc.physname)
@ -32,7 +32,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
#define FIELD_STATIC_PHYSADDR(thisfld) ((thisfld).loc.physaddr) #define FIELD_STATIC_PHYSADDR(thisfld) ((thisfld).loc.physaddr)
#define FIELD_DWARF_BLOCK(thisfld) ((thisfld).loc.dwarf_block) #define FIELD_DWARF_BLOCK(thisfld) ((thisfld).loc.dwarf_block)
#define SET_FIELD_BITPOS(thisfld, bitpos) \ #define SET_FIELD_BITPOS(thisfld, bitpos) \
@@ -1461,6 +1464,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *); @@ -1466,6 +1469,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *);
#define SET_FIELD_PHYSNAME(thisfld, name) \ #define SET_FIELD_PHYSNAME(thisfld, name) \
(FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSNAME, \ (FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSNAME, \
FIELD_STATIC_PHYSNAME (thisfld) = (name)) FIELD_STATIC_PHYSNAME (thisfld) = (name))
@ -40,7 +40,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
#define SET_FIELD_PHYSADDR(thisfld, addr) \ #define SET_FIELD_PHYSADDR(thisfld, addr) \
(FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSADDR, \ (FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSADDR, \
FIELD_STATIC_PHYSADDR (thisfld) = (addr)) FIELD_STATIC_PHYSADDR (thisfld) = (addr))
@@ -1477,6 +1481,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *); @@ -1482,6 +1486,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *);
#define TYPE_FIELD_BITPOS(thistype, n) FIELD_BITPOS (TYPE_FIELD (thistype, n)) #define TYPE_FIELD_BITPOS(thistype, n) FIELD_BITPOS (TYPE_FIELD (thistype, n))
#define TYPE_FIELD_ENUMVAL(thistype, n) FIELD_ENUMVAL (TYPE_FIELD (thistype, n)) #define TYPE_FIELD_ENUMVAL(thistype, n) FIELD_ENUMVAL (TYPE_FIELD (thistype, n))
#define TYPE_FIELD_STATIC_PHYSNAME(thistype, n) FIELD_STATIC_PHYSNAME (TYPE_FIELD (thistype, n)) #define TYPE_FIELD_STATIC_PHYSNAME(thistype, n) FIELD_STATIC_PHYSNAME (TYPE_FIELD (thistype, n))
@ -51,7 +51,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
diff --git a/gdb/value.c b/gdb/value.c diff --git a/gdb/value.c b/gdb/value.c
--- a/gdb/value.c --- a/gdb/value.c
+++ b/gdb/value.c +++ b/gdb/value.c
@@ -2821,7 +2821,8 @@ value_static_field (struct type *type, int fieldno) @@ -2827,7 +2827,8 @@ value_static_field (struct type *type, int fieldno)
{ {
case FIELD_LOC_KIND_PHYSADDR: case FIELD_LOC_KIND_PHYSADDR:
retval = value_at_lazy (TYPE_FIELD_TYPE (type, fieldno), retval = value_at_lazy (TYPE_FIELD_TYPE (type, fieldno),

View File

@ -255,7 +255,7 @@ diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
--- a/gdb/gdbserver/linux-low.c --- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c
@@ -971,7 +971,16 @@ linux_ptrace_fun () @@ -967,7 +967,16 @@ linux_ptrace_fun ()
{ {
if (ptrace (PTRACE_TRACEME, 0, (PTRACE_TYPE_ARG3) 0, if (ptrace (PTRACE_TRACEME, 0, (PTRACE_TYPE_ARG3) 0,
(PTRACE_TYPE_ARG4) 0) < 0) (PTRACE_TYPE_ARG4) 0) < 0)
@ -276,7 +276,7 @@ diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
--- a/gdb/linux-nat.c --- a/gdb/linux-nat.c
+++ b/gdb/linux-nat.c +++ b/gdb/linux-nat.c
@@ -1095,7 +1095,16 @@ linux_nat_target::create_inferior (const char *exec_file, @@ -1091,7 +1091,16 @@ linux_nat_target::create_inferior (const char *exec_file,
/* Make sure we report all signals during startup. */ /* Make sure we report all signals during startup. */
pass_signals ({}); pass_signals ({});

View File

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

View File

@ -30,7 +30,7 @@ debugging problem of GOMP outside of the scope of this Bug.
diff --git a/gdb/infrun.c b/gdb/infrun.c diff --git a/gdb/infrun.c b/gdb/infrun.c
--- a/gdb/infrun.c --- a/gdb/infrun.c
+++ b/gdb/infrun.c +++ b/gdb/infrun.c
@@ -6462,6 +6462,16 @@ process_event_stop_test (struct execution_control_state *ecs) @@ -6460,6 +6460,16 @@ process_event_stop_test (struct execution_control_state *ecs)
if (ecs->event_thread->control.step_over_calls == STEP_OVER_ALL) if (ecs->event_thread->control.step_over_calls == STEP_OVER_ALL)
{ {
@ -47,7 +47,7 @@ diff --git a/gdb/infrun.c b/gdb/infrun.c
/* We're doing a "next". /* We're doing a "next".
Normal (forward) execution: set a breakpoint at the Normal (forward) execution: set a breakpoint at the
@@ -6495,6 +6505,7 @@ process_event_stop_test (struct execution_control_state *ecs) @@ -6493,6 +6503,7 @@ process_event_stop_test (struct execution_control_state *ecs)
keep_going (ecs); keep_going (ecs);
return; return;

View File

@ -9,7 +9,7 @@ Subject: gdb-container-rh-pkg.patch
diff --git a/gdb/remote.c b/gdb/remote.c diff --git a/gdb/remote.c b/gdb/remote.c
--- a/gdb/remote.c --- a/gdb/remote.c
+++ b/gdb/remote.c +++ b/gdb/remote.c
@@ -13927,7 +13927,17 @@ remote_target::pid_to_exec_file (int pid) @@ -13905,7 +13905,17 @@ remote_target::pid_to_exec_file (int pid)
char *annex = NULL; char *annex = NULL;
if (packet_support (PACKET_qXfer_exec_file) != PACKET_ENABLE) 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 diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
--- a/gdb/dwarf2read.c --- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c
@@ -10527,6 +10527,13 @@ private: @@ -10602,6 +10602,13 @@ private:
static void static void
process_die (struct die_info *die, struct dwarf2_cu *cu) process_die (struct die_info *die, struct dwarf2_cu *cu)
{ {
@ -59,7 +59,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
diff --git a/gdb/infrun.c b/gdb/infrun.c diff --git a/gdb/infrun.c b/gdb/infrun.c
--- a/gdb/infrun.c --- a/gdb/infrun.c
+++ b/gdb/infrun.c +++ b/gdb/infrun.c
@@ -610,6 +610,13 @@ holding the child stopped. Try \"set detach-on-fork\" or \ @@ -608,6 +608,13 @@ holding the child stopped. Try \"set detach-on-fork\" or \
target_pid_to_str (process_ptid).c_str ()); target_pid_to_str (process_ptid).c_str ());
} }
@ -76,7 +76,7 @@ diff --git a/gdb/infrun.c b/gdb/infrun.c
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
--- a/gdb/linux-nat.c --- a/gdb/linux-nat.c
+++ b/gdb/linux-nat.c +++ b/gdb/linux-nat.c
@@ -192,6 +192,12 @@ struct linux_nat_target *linux_target; @@ -188,6 +188,12 @@ struct linux_nat_target *linux_target;
/* Does the current host support PTRACE_GETREGSET? */ /* Does the current host support PTRACE_GETREGSET? */
enum tribool have_ptrace_getregset = TRIBOOL_UNKNOWN; enum tribool have_ptrace_getregset = TRIBOOL_UNKNOWN;
@ -89,7 +89,7 @@ diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
static unsigned int debug_linux_nat; static unsigned int debug_linux_nat;
static void static void
show_debug_linux_nat (struct ui_file *file, int from_tty, show_debug_linux_nat (struct ui_file *file, int from_tty,
@@ -1033,6 +1039,9 @@ linux_nat_post_attach_wait (ptid_t ptid, int *signalled) @@ -1029,6 +1035,9 @@ linux_nat_post_attach_wait (ptid_t ptid, int *signalled)
if (debug_linux_nat) if (debug_linux_nat)
fprintf_unfiltered (gdb_stdlog, fprintf_unfiltered (gdb_stdlog,
"LNPAW: Attaching to a stopped process\n"); "LNPAW: Attaching to a stopped process\n");
@ -99,7 +99,7 @@ diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
/* The process is definitely stopped. It is in a job control /* The process is definitely stopped. It is in a job control
stop, unless the kernel predates the TASK_STOPPED / stop, unless the kernel predates the TASK_STOPPED /
@@ -1364,6 +1373,25 @@ get_detach_signal (struct lwp_info *lp) @@ -1360,6 +1369,25 @@ get_detach_signal (struct lwp_info *lp)
return gdb_signal_to_host (signo); return gdb_signal_to_host (signo);
} }
@ -125,7 +125,7 @@ diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
return 0; return 0;
} }
@@ -1512,6 +1540,10 @@ linux_nat_target::detach (inferior *inf, int from_tty) @@ -1508,6 +1536,10 @@ linux_nat_target::detach (inferior *inf, int from_tty)
detach_one_lwp (main_lwp, &signo); detach_one_lwp (main_lwp, &signo);
detach_success (inf); detach_success (inf);
@ -136,7 +136,7 @@ diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
} }
} }
@@ -1769,6 +1801,16 @@ linux_nat_target::resume (ptid_t ptid, int step, enum gdb_signal signo) @@ -1765,6 +1797,16 @@ linux_nat_target::resume (ptid_t ptid, int step, enum gdb_signal signo)
return; return;
} }
@ -153,7 +153,7 @@ diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
if (resume_many) if (resume_many)
iterate_over_lwps (ptid, [=] (struct lwp_info *info) iterate_over_lwps (ptid, [=] (struct lwp_info *info)
{ {
@@ -3770,6 +3812,10 @@ linux_nat_target::mourn_inferior () @@ -3766,6 +3808,10 @@ linux_nat_target::mourn_inferior ()
/* Let the arch-specific native code know this process is gone. */ /* Let the arch-specific native code know this process is gone. */
linux_target->low_forget_process (pid); linux_target->low_forget_process (pid);

View File

@ -37,7 +37,7 @@ dbfd7140bf4c0500d1f5d192be781f83f78f7922
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
--- a/gdb/dwarf2read.c --- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c
@@ -17804,7 +17804,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) @@ -17878,7 +17878,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
struct type *base_type, *orig_base_type; struct type *base_type, *orig_base_type;
struct type *range_type; struct type *range_type;
struct attribute *attr; struct attribute *attr;
@ -46,7 +46,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
int low_default_is_valid; int low_default_is_valid;
int high_bound_is_count = 0; int high_bound_is_count = 0;
const char *name; const char *name;
@@ -17825,7 +17825,9 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) @@ -17899,7 +17899,9 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
low.kind = PROP_CONST; low.kind = PROP_CONST;
high.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 /* Set LOW_DEFAULT_IS_VALID if current language and DWARF version allow
omitting DW_AT_lower_bound. */ omitting DW_AT_lower_bound. */
@@ -17858,6 +17860,14 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) @@ -17932,6 +17934,14 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
break; break;
} }
@ -71,19 +71,20 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
attr = dwarf2_attr (die, DW_AT_lower_bound, cu); attr = dwarf2_attr (die, DW_AT_lower_bound, cu);
if (attr) if (attr)
attr_to_dynamic_prop (attr, die, cu, &low, base_type); attr_to_dynamic_prop (attr, die, cu, &low, base_type);
@@ -17911,7 +17921,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) @@ -17990,7 +18000,8 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
&& !TYPE_UNSIGNED (base_type) && (high.data.const_val & negative_mask)) && !TYPE_UNSIGNED (base_type) && (high.data.const_val & negative_mask))
high.data.const_val |= negative_mask; high.data.const_val |= negative_mask;
- range_type = create_range_type (NULL, orig_base_type, &low, &high); - range_type = create_range_type (NULL, orig_base_type, &low, &high, bias);
+ range_type = create_range_type (NULL, orig_base_type, &low, &high, &stride); + range_type = create_range_type (NULL, orig_base_type, &low, &high, bias,
+ &stride);
if (high_bound_is_count) if (high_bound_is_count)
TYPE_RANGE_DATA (range_type)->flag_upper_bound_is_count = 1; TYPE_RANGE_DATA (range_type)->flag_upper_bound_is_count = 1;
diff --git a/gdb/eval.c b/gdb/eval.c diff --git a/gdb/eval.c b/gdb/eval.c
--- a/gdb/eval.c --- a/gdb/eval.c
+++ b/gdb/eval.c +++ b/gdb/eval.c
@@ -375,29 +375,324 @@ init_array_element (struct value *array, struct value *element, @@ -372,29 +372,324 @@ init_array_element (struct value *array, struct value *element,
return index; return index;
} }
@ -427,7 +428,7 @@ diff --git a/gdb/eval.c b/gdb/eval.c
} }
@@ -1238,19 +1533,6 @@ evaluate_funcall (type *expect_type, expression *exp, int *pos, @@ -1235,19 +1530,6 @@ evaluate_funcall (type *expect_type, expression *exp, int *pos,
return eval_call (exp, noside, nargs, argvec, var_func_name, expect_type); return eval_call (exp, noside, nargs, argvec, var_func_name, expect_type);
} }
@ -447,7 +448,7 @@ diff --git a/gdb/eval.c b/gdb/eval.c
struct value * struct value *
evaluate_subexp_standard (struct type *expect_type, evaluate_subexp_standard (struct type *expect_type,
struct expression *exp, int *pos, struct expression *exp, int *pos,
@@ -1945,33 +2227,8 @@ evaluate_subexp_standard (struct type *expect_type, @@ -1942,33 +2224,8 @@ evaluate_subexp_standard (struct type *expect_type,
switch (code) switch (code)
{ {
case TYPE_CODE_ARRAY: case TYPE_CODE_ARRAY:
@ -482,7 +483,7 @@ diff --git a/gdb/eval.c b/gdb/eval.c
case TYPE_CODE_PTR: case TYPE_CODE_PTR:
case TYPE_CODE_FUNC: case TYPE_CODE_FUNC:
@@ -2384,49 +2641,6 @@ evaluate_subexp_standard (struct type *expect_type, @@ -2381,49 +2638,6 @@ evaluate_subexp_standard (struct type *expect_type,
} }
return (arg1); return (arg1);
@ -532,7 +533,7 @@ diff --git a/gdb/eval.c b/gdb/eval.c
case BINOP_LOGICAL_AND: case BINOP_LOGICAL_AND:
arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside); arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
if (noside == EVAL_SKIP) if (noside == EVAL_SKIP)
@@ -3346,6 +3560,9 @@ calc_f77_array_dims (struct type *array_type) @@ -3343,6 +3557,9 @@ calc_f77_array_dims (struct type *array_type)
int ndimen = 1; int ndimen = 1;
struct type *tmp_type; struct type *tmp_type;
@ -760,25 +761,25 @@ diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
--- a/gdb/gdbtypes.c --- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c
@@ -912,7 +912,8 @@ operator== (const range_bounds &l, const range_bounds &r) @@ -914,7 +914,8 @@ struct type *
struct type *
create_range_type (struct type *result_type, struct type *index_type, create_range_type (struct type *result_type, struct type *index_type,
const struct dynamic_prop *low_bound, const struct dynamic_prop *low_bound,
- const struct dynamic_prop *high_bound) const struct dynamic_prop *high_bound,
+ const struct dynamic_prop *high_bound, - LONGEST bias)
+ LONGEST bias,
+ const struct dynamic_prop *stride) + const struct dynamic_prop *stride)
{ {
/* The INDEX_TYPE should be a type capable of holding the upper and lower /* 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. */ bounds, as such a zero sized, or void type makes no sense. */
@@ -932,6 +933,7 @@ create_range_type (struct type *result_type, struct type *index_type, @@ -935,6 +936,7 @@ create_range_type (struct type *result_type, struct type *index_type,
TYPE_ZALLOC (result_type, sizeof (struct range_bounds));
TYPE_RANGE_DATA (result_type)->low = *low_bound; TYPE_RANGE_DATA (result_type)->low = *low_bound;
TYPE_RANGE_DATA (result_type)->high = *high_bound; TYPE_RANGE_DATA (result_type)->high = *high_bound;
TYPE_RANGE_DATA (result_type)->bias = bias;
+ TYPE_RANGE_DATA (result_type)->stride = *stride; + TYPE_RANGE_DATA (result_type)->stride = *stride;
if (low_bound->kind == PROP_CONST && low_bound->data.const_val >= 0) if (low_bound->kind == PROP_CONST && low_bound->data.const_val >= 0)
TYPE_UNSIGNED (result_type) = 1; TYPE_UNSIGNED (result_type) = 1;
@@ -960,7 +962,7 @@ struct type * @@ -963,7 +965,7 @@ struct type *
create_static_range_type (struct type *result_type, struct type *index_type, create_static_range_type (struct type *result_type, struct type *index_type,
LONGEST low_bound, LONGEST high_bound) LONGEST low_bound, LONGEST high_bound)
{ {
@ -787,20 +788,20 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
low.kind = PROP_CONST; low.kind = PROP_CONST;
low.data.const_val = low_bound; low.data.const_val = low_bound;
@@ -968,7 +970,11 @@ create_static_range_type (struct type *result_type, struct type *index_type, @@ -971,7 +973,11 @@ create_static_range_type (struct type *result_type, struct type *index_type,
high.kind = PROP_CONST; high.kind = PROP_CONST;
high.data.const_val = high_bound; high.data.const_val = high_bound;
- result_type = create_range_type (result_type, index_type, &low, &high); - result_type = create_range_type (result_type, index_type, &low, &high, 0);
+ stride.kind = PROP_CONST; + stride.kind = PROP_CONST;
+ stride.data.const_val = 0; + stride.data.const_val = 0;
+ +
+ result_type = create_range_type (result_type, index_type, + result_type = create_range_type (result_type, index_type,
+ &low, &high, &stride); + &low, &high, 0, &stride);
return result_type; return result_type;
} }
@@ -1186,16 +1192,20 @@ create_array_type_with_stride (struct type *result_type, @@ -1189,16 +1195,20 @@ create_array_type_with_stride (struct type *result_type,
&& (!type_not_associated (result_type) && (!type_not_associated (result_type)
&& !type_not_allocated (result_type))) && !type_not_allocated (result_type)))
{ {
@ -822,7 +823,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
else if (bit_stride > 0) else if (bit_stride > 0)
TYPE_LENGTH (result_type) = TYPE_LENGTH (result_type) =
(bit_stride * (high_bound - low_bound + 1) + 7) / 8; (bit_stride * (high_bound - low_bound + 1) + 7) / 8;
@@ -1980,7 +1990,7 @@ resolve_dynamic_range (struct type *dyn_range_type, @@ -1983,7 +1993,7 @@ resolve_dynamic_range (struct type *dyn_range_type,
CORE_ADDR value; CORE_ADDR value;
struct type *static_range_type, *static_target_type; struct type *static_range_type, *static_target_type;
const struct dynamic_prop *prop; const struct dynamic_prop *prop;
@ -831,7 +832,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
gdb_assert (TYPE_CODE (dyn_range_type) == TYPE_CODE_RANGE); gdb_assert (TYPE_CODE (dyn_range_type) == TYPE_CODE_RANGE);
@@ -2012,12 +2022,20 @@ resolve_dynamic_range (struct type *dyn_range_type, @@ -2015,13 +2025,21 @@ resolve_dynamic_range (struct type *dyn_range_type,
high_bound.data.const_val = 0; high_bound.data.const_val = 0;
} }
@ -845,20 +846,21 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
static_target_type static_target_type
= resolve_dynamic_type_internal (TYPE_TARGET_TYPE (dyn_range_type), = resolve_dynamic_type_internal (TYPE_TARGET_TYPE (dyn_range_type),
addr_stack, 0); addr_stack, 0);
LONGEST bias = TYPE_RANGE_DATA (dyn_range_type)->bias;
static_range_type = create_range_type (copy_type (dyn_range_type), static_range_type = create_range_type (copy_type (dyn_range_type),
static_target_type, static_target_type,
- &low_bound, &high_bound); - &low_bound, &high_bound, bias);
+ &low_bound, &high_bound, &stride); + &low_bound, &high_bound, bias,
+ + &stride);
TYPE_RANGE_DATA (static_range_type)->flag_bound_evaluated = 1; TYPE_RANGE_DATA (static_range_type)->flag_bound_evaluated = 1;
return static_range_type; return static_range_type;
} }
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
--- a/gdb/gdbtypes.h --- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h +++ b/gdb/gdbtypes.h
@@ -617,6 +617,10 @@ struct range_bounds @@ -622,6 +622,10 @@ struct range_bounds
struct dynamic_prop high; LONGEST bias;
+ /* * Stride of range. */ + /* * Stride of range. */
+ +
@ -867,7 +869,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
/* True if HIGH range bound contains the number of elements in the /* True if HIGH range bound contains the number of elements in the
subrange. This affects how the final high bound is computed. */ subrange. This affects how the final high bound is computed. */
@@ -781,7 +785,6 @@ struct main_type @@ -786,7 +790,6 @@ struct main_type
/* * Union member used for range types. */ /* * Union member used for range types. */
struct range_bounds *bounds; struct range_bounds *bounds;
@ -875,7 +877,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
} flds_bnds; } flds_bnds;
/* * Slot to point to additional language-specific fields of this /* * Slot to point to additional language-specific fields of this
@@ -1340,6 +1343,15 @@ extern bool set_type_align (struct type *, ULONGEST); @@ -1345,6 +1348,15 @@ extern bool set_type_align (struct type *, ULONGEST);
TYPE_RANGE_DATA(range_type)->high.kind TYPE_RANGE_DATA(range_type)->high.kind
#define TYPE_LOW_BOUND_KIND(range_type) \ #define TYPE_LOW_BOUND_KIND(range_type) \
TYPE_RANGE_DATA(range_type)->low.kind TYPE_RANGE_DATA(range_type)->low.kind
@ -891,7 +893,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
/* Property accessors for the type data location. */ /* Property accessors for the type data location. */
#define TYPE_DATA_LOCATION(thistype) \ #define TYPE_DATA_LOCATION(thistype) \
@@ -1375,6 +1387,9 @@ extern bool set_type_align (struct type *, ULONGEST); @@ -1380,6 +1392,9 @@ extern bool set_type_align (struct type *, ULONGEST);
TYPE_HIGH_BOUND_UNDEFINED(TYPE_INDEX_TYPE(arraytype)) TYPE_HIGH_BOUND_UNDEFINED(TYPE_INDEX_TYPE(arraytype))
#define TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED(arraytype) \ #define TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED(arraytype) \
TYPE_LOW_BOUND_UNDEFINED(TYPE_INDEX_TYPE(arraytype)) TYPE_LOW_BOUND_UNDEFINED(TYPE_INDEX_TYPE(arraytype))
@ -901,14 +903,16 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
#define TYPE_ARRAY_UPPER_BOUND_VALUE(arraytype) \ #define TYPE_ARRAY_UPPER_BOUND_VALUE(arraytype) \
(TYPE_HIGH_BOUND(TYPE_INDEX_TYPE((arraytype)))) (TYPE_HIGH_BOUND(TYPE_INDEX_TYPE((arraytype))))
@@ -1950,6 +1965,7 @@ extern struct type *create_array_type_with_stride @@ -1957,7 +1972,8 @@ extern struct type *create_array_type_with_stride
struct dynamic_prop *, unsigned int);
extern struct type *create_range_type (struct type *, struct type *, extern struct type *create_range_type (struct type *, struct type *,
+ const struct dynamic_prop *,
const struct dynamic_prop *, const struct dynamic_prop *,
const struct dynamic_prop *); const struct dynamic_prop *,
- LONGEST);
+ LONGEST,
+ const struct dynamic_prop *);
extern struct type *create_array_type (struct type *, struct type *,
struct type *);
diff --git a/gdb/parse.c b/gdb/parse.c diff --git a/gdb/parse.c b/gdb/parse.c
--- a/gdb/parse.c --- a/gdb/parse.c
+++ b/gdb/parse.c +++ b/gdb/parse.c
@ -1931,7 +1935,7 @@ diff --git a/gdb/valops.c b/gdb/valops.c
diff --git a/gdb/value.h b/gdb/value.h diff --git a/gdb/value.h b/gdb/value.h
--- a/gdb/value.h --- a/gdb/value.h
+++ b/gdb/value.h +++ b/gdb/value.h
@@ -1143,6 +1143,8 @@ extern struct value *varying_to_slice (struct value *); @@ -1145,6 +1145,8 @@ extern struct value *varying_to_slice (struct value *);
extern struct value *value_slice (struct value *, int, int); extern struct value *value_slice (struct value *, int, int);

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 diff --git a/gdb/NEWS b/gdb/NEWS
--- a/gdb/NEWS --- a/gdb/NEWS
+++ b/gdb/NEWS +++ b/gdb/NEWS
@@ -660,6 +660,8 @@ SH-5/SH64 running OpenBSD SH-5/SH64 support in sh*-*-openbsd* @@ -689,6 +689,8 @@ SH-5/SH64 running OpenBSD SH-5/SH64 support in sh*-*-openbsd*
*** Changes in GDB 8.1 *** 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 diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
--- a/gdb/dwarf2read.c --- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c
@@ -1810,7 +1810,10 @@ static void read_signatured_type (struct signatured_type *); @@ -1818,7 +1818,10 @@ static void read_signatured_type (struct signatured_type *);
static int attr_to_dynamic_prop (const struct attribute *attr, static int attr_to_dynamic_prop (const struct attribute *attr,
struct die_info *die, struct dwarf2_cu *cu, 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 */ /* memory allocation interface */
@@ -13661,7 +13664,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu) @@ -13735,7 +13738,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
newobj->static_link newobj->static_link
= XOBNEW (&objfile->objfile_obstack, struct dynamic_prop); = XOBNEW (&objfile->objfile_obstack, struct dynamic_prop);
attr_to_dynamic_prop (attr, die, cu, newobj->static_link, 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 (); cu->list_in_scope = cu->get_builder ()->get_local_symbols ();
@@ -16423,7 +16426,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu) @@ -16497,7 +16500,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
byte_stride_prop byte_stride_prop
= (struct dynamic_prop *) alloca (sizeof (struct dynamic_prop)); = (struct dynamic_prop *) alloca (sizeof (struct dynamic_prop));
stride_ok = attr_to_dynamic_prop (attr, die, cu, byte_stride_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) if (!stride_ok)
{ {
complaint (_("unable to read array DW_AT_byte_stride " complaint (_("unable to read array DW_AT_byte_stride "
@@ -17181,29 +17184,90 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu) @@ -17255,29 +17258,90 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
struct type *type, *range_type, *index_type, *char_type; struct type *type, *range_type, *index_type, *char_type;
struct attribute *attr; 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); char_type = language_string_char_type (cu->language_defn, gdbarch);
type = create_string_type (NULL, char_type, range_type); type = create_string_type (NULL, char_type, range_type);
@@ -17636,7 +17700,8 @@ read_base_type (struct die_info *die, struct dwarf2_cu *cu) @@ -17710,7 +17774,8 @@ read_base_type (struct die_info *die, struct dwarf2_cu *cu)
static int static int
attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die, attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
struct dwarf2_cu *cu, struct dynamic_prop *prop, 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 dwarf2_property_baton *baton;
struct obstack *obstack struct obstack *obstack
@@ -17655,9 +17720,30 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die, @@ -17729,9 +17794,30 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
baton->locexpr.size = DW_BLOCK (attr)->size; baton->locexpr.size = DW_BLOCK (attr)->size;
baton->locexpr.data = DW_BLOCK (attr)->data; baton->locexpr.data = DW_BLOCK (attr)->data;
baton->locexpr.is_reference = false; 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)) else if (attr_form_is_ref (attr))
{ {
@@ -17690,9 +17776,29 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die, @@ -17764,9 +17850,29 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
baton = XOBNEW (obstack, struct dwarf2_property_baton); baton = XOBNEW (obstack, struct dwarf2_property_baton);
baton->property_type = die_type (target_die, target_cu); baton->property_type = die_type (target_die, target_cu);
baton->locexpr.per_cu = cu->per_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->data.baton = baton;
prop->kind = PROP_LOCEXPR; prop->kind = PROP_LOCEXPR;
gdb_assert (prop->data.baton != NULL); gdb_assert (prop->data.baton != NULL);
@@ -17862,7 +17968,8 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) @@ -17936,7 +18042,8 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
attr = dwarf2_attr (die, DW_AT_byte_stride, cu); attr = dwarf2_attr (die, DW_AT_byte_stride, cu);
if (attr) if (attr)
@ -293,7 +293,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
complaint (_("Missing DW_AT_byte_stride " complaint (_("Missing DW_AT_byte_stride "
"- DIE at 0x%s [in module %s]"), "- DIE at 0x%s [in module %s]"),
sect_offset_str (die->sect_off), sect_offset_str (die->sect_off),
@@ -17870,7 +17977,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) @@ -17944,7 +18051,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
attr = dwarf2_attr (die, DW_AT_lower_bound, cu); attr = dwarf2_attr (die, DW_AT_lower_bound, cu);
if (attr) if (attr)
@ -302,7 +302,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
else if (!low_default_is_valid) else if (!low_default_is_valid)
complaint (_("Missing DW_AT_lower_bound " complaint (_("Missing DW_AT_lower_bound "
"- DIE at %s [in module %s]"), "- DIE at %s [in module %s]"),
@@ -17879,10 +17986,10 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) @@ -17953,10 +18060,10 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
struct attribute *attr_ub, *attr_count; struct attribute *attr_ub, *attr_count;
attr = attr_ub = dwarf2_attr (die, DW_AT_upper_bound, cu); 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 bounds are constant do the final calculation here. */
if (low.kind == PROP_CONST && high.kind == PROP_CONST) if (low.kind == PROP_CONST && high.kind == PROP_CONST)
@@ -25528,7 +25635,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) @@ -25646,7 +25753,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
{ {
struct type *prop_type struct type *prop_type
= dwarf2_per_cu_addr_sized_int_type (cu->per_cu, false); = 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); add_dyn_prop (DYN_PROP_ALLOCATED, prop, type);
} }
else if (attr != NULL) else if (attr != NULL)
@@ -25544,7 +25651,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) @@ -25662,7 +25769,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
{ {
struct type *prop_type struct type *prop_type
= dwarf2_per_cu_addr_sized_int_type (cu->per_cu, false); = 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); add_dyn_prop (DYN_PROP_ASSOCIATED, prop, type);
} }
else if (attr != NULL) else if (attr != NULL)
@@ -25557,7 +25664,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) @@ -25675,7 +25782,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
/* Read DW_AT_data_location and set in type. */ /* Read DW_AT_data_location and set in type. */
attr = dwarf2_attr (die, DW_AT_data_location, cu); attr = dwarf2_attr (die, DW_AT_data_location, cu);
if (attr_to_dynamic_prop (attr, die, cu, &prop, 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 diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
--- a/gdb/f-typeprint.c --- a/gdb/f-typeprint.c
+++ b/gdb/f-typeprint.c +++ b/gdb/f-typeprint.c
@@ -186,15 +186,14 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream, @@ -197,15 +197,14 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
print_rank_only = true; print_rank_only = true;
else if ((TYPE_ASSOCIATED_PROP (type) else if ((TYPE_ASSOCIATED_PROP (type)
&& PROP_CONST != TYPE_DYN_PROP_KIND (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) if (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_ARRAY)
f_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, f_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0,
@@ -206,8 +205,9 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream, @@ -217,8 +216,9 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
else else
{ {
LONGEST lower_bound = f77_get_lowerbound (type); 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 /* Make sure that, if we have an assumed size array, we
print out a warning and print the upperbound as '*'. */ print out a warning and print the upperbound as '*'. */
@@ -218,7 +218,7 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream, @@ -229,7 +229,7 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
{ {
LONGEST upper_bound = f77_get_upperbound (type); LONGEST upper_bound = f77_get_upperbound (type);
@ -389,7 +389,7 @@ diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
} }
} }
@@ -238,7 +238,7 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream, @@ -249,7 +249,7 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
case TYPE_CODE_REF: case TYPE_CODE_REF:
f_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, 1, 0, f_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, 1, 0,
arrayprint_recurse_level, false); 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 diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
--- a/gdb/gdbtypes.c --- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c
@@ -1903,7 +1903,8 @@ is_dynamic_type_internal (struct type *type, int top_level) @@ -1906,7 +1906,8 @@ is_dynamic_type_internal (struct type *type, int top_level)
type = check_typedef (type); type = check_typedef (type);
/* We only want to recognize references at the outermost level. */ /* 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)); type = check_typedef (TYPE_TARGET_TYPE (type));
/* Types that have a dynamic TYPE_DATA_LOCATION are considered /* Types that have a dynamic TYPE_DATA_LOCATION are considered
@@ -1937,6 +1938,7 @@ is_dynamic_type_internal (struct type *type, int top_level) @@ -1940,6 +1941,7 @@ is_dynamic_type_internal (struct type *type, int top_level)
} }
case TYPE_CODE_ARRAY: case TYPE_CODE_ARRAY:
@ -419,7 +419,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
{ {
gdb_assert (TYPE_NFIELDS (type) == 1); gdb_assert (TYPE_NFIELDS (type) == 1);
@@ -2055,7 +2057,8 @@ resolve_dynamic_array (struct type *type, @@ -2059,7 +2061,8 @@ resolve_dynamic_array (struct type *type,
struct dynamic_prop *prop; struct dynamic_prop *prop;
unsigned int bit_stride = 0; unsigned int bit_stride = 0;
@ -429,7 +429,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
type = copy_type (type); type = copy_type (type);
@@ -2080,11 +2083,15 @@ resolve_dynamic_array (struct type *type, @@ -2084,11 +2087,15 @@ resolve_dynamic_array (struct type *type,
ary_dim = check_typedef (TYPE_TARGET_TYPE (elt_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); prop = get_dyn_prop (DYN_PROP_BYTE_STRIDE, type);
if (prop != NULL) if (prop != NULL)
{ {
@@ -2236,6 +2243,28 @@ resolve_dynamic_struct (struct type *type, @@ -2240,6 +2247,28 @@ resolve_dynamic_struct (struct type *type,
return resolved_type; return resolved_type;
} }
@ -475,7 +475,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
/* Worker for resolved_dynamic_type. */ /* Worker for resolved_dynamic_type. */
static struct type * static struct type *
@@ -2284,7 +2313,12 @@ resolve_dynamic_type_internal (struct type *type, @@ -2288,7 +2317,12 @@ resolve_dynamic_type_internal (struct type *type,
break; break;
} }

View File

@ -30,7 +30,7 @@ Jan
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
--- a/gdb/dwarf2loc.c --- a/gdb/dwarf2loc.c
+++ b/gdb/dwarf2loc.c +++ b/gdb/dwarf2loc.c
@@ -2157,6 +2157,20 @@ dwarf2_evaluate_loc_desc_full (struct type *type, struct frame_info *frame, @@ -2155,6 +2155,20 @@ dwarf2_evaluate_loc_desc_full (struct type *type, struct frame_info *frame,
ctx.per_cu = per_cu; ctx.per_cu = per_cu;
ctx.obj_address = 0; ctx.obj_address = 0;

View File

@ -27,7 +27,7 @@
Name: %{?scl_prefix}gdb Name: %{?scl_prefix}gdb
# Freeze it when GDB gets branched # Freeze it when GDB gets branched
%global snapsrc 20190824 %global snapsrc 20190924
# See timestamp of source gnulib installed into gdb/gnulib/ . # See timestamp of source gnulib installed into gdb/gnulib/ .
%global snapgnulib 20161115 %global snapgnulib 20161115
%global tarname gdb-%{version} %global tarname gdb-%{version}
@ -35,7 +35,7 @@ Version: 8.3.50.%{snapsrc}
# The release always contains a leading reserved number, start it at 1. # 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. # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
Release: 26%{?dist} Release: 27%{?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 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. # Do not provide URL for snapshots as the file lasts there only for 2 days.
@ -1142,6 +1142,10 @@ fi
%endif %endif
%changelog %changelog
* Wed Sep 25 2019 Sergio Durigan Junior <sergiodj@redhat.com> - 8.3.50.20190924-27
- Rebase to FSF GDB 8.3.50.20190924 (8.4pre).
- Update 'gdb-6.6-buildid-locate.patch'.
* Sat Aug 24 2019 Sergio Durigan Junior <sergiodj@redhat.com> - 8.3.50.20190824-26 * Sat Aug 24 2019 Sergio Durigan Junior <sergiodj@redhat.com> - 8.3.50.20190824-26
- Rebase to FSF GDB 8.3.50.20190824 (8.4pre). - Rebase to FSF GDB 8.3.50.20190824 (8.4pre).
- Update 'v1.5-libipt-static.patch'. - Update 'v1.5-libipt-static.patch'.

View File

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