diff --git a/.gitignore b/.gitignore
index 018e178..177dbad 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
 /gdb-libstdc++-v3-python-8.1.1-20180626.tar.xz
 /v2.0.1.tar.gz
-/gdb-8.3.50.20190824.tar.xz
+/gdb-8.3.50.20190924.tar.xz
diff --git a/_git_upstream_commit b/_git_upstream_commit
index e39b07c..bba5c1d 100644
--- a/_git_upstream_commit
+++ b/_git_upstream_commit
@@ -1 +1 @@
-8a9455cc824134d40943c34dc2cd44bee8275083
+3868d2e9f18d0351c472c0d6c8864c610e62598a
diff --git a/gdb-6.3-gstack-20050411.patch b/gdb-6.3-gstack-20050411.patch
index bab82bf..0b8882e 100644
--- a/gdb-6.3-gstack-20050411.patch
+++ b/gdb-6.3-gstack-20050411.patch
@@ -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
-@@ -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
  	@$(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 \
-@@ -1795,7 +1795,25 @@ install-guile:
+@@ -1790,7 +1790,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 \
-@@ -1818,6 +1836,18 @@ uninstall: force $(CONFIG_UNINSTALL)
+@@ -1813,6 +1831,18 @@ uninstall: force $(CONFIG_UNINSTALL)
  	fi
  	@$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
  
diff --git a/gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch b/gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
index 898c87a..ca476c4 100644
--- a/gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
+++ b/gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
@@ -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
 --- a/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)
      {
diff --git a/gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch b/gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
index 6f07d11..885fa2a 100644
--- a/gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
+++ b/gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
@@ -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
-@@ -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)); */
  	  ;
  	/* fall through */
diff --git a/gdb-6.6-buildid-locate-core-as-arg.patch b/gdb-6.6-buildid-locate-core-as-arg.patch
index 78604b6..877f850 100644
--- a/gdb-6.6-buildid-locate-core-as-arg.patch
+++ b/gdb-6.6-buildid-locate-core-as-arg.patch
@@ -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
-@@ -439,6 +439,34 @@ struct cmdarg
+@@ -445,6 +445,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)
  {
-@@ -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];
  	  execarg = argv[optind];
@@ -164,7 +164,7 @@ diff --git a/gdb/main.c b/gdb/main.c
  	  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
        && strcmp (execarg, symarg) == 0)
      {
diff --git a/gdb-6.6-buildid-locate-rpm-scl.patch b/gdb-6.6-buildid-locate-rpm-scl.patch
index 3a5e442..d1199ad 100644
--- a/gdb-6.6-buildid-locate-rpm-scl.patch
+++ b/gdb-6.6-buildid-locate-rpm-scl.patch
@@ -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
-@@ -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".  */
    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)
  	{
-@@ -3473,6 +3483,10 @@ to use the section anyway."),
+@@ -3481,6 +3491,10 @@ to use the section anyway."),
  	  warning_printed = 1;
  	}
        return 0;
diff --git a/gdb-6.6-buildid-locate-solib-missing-ids.patch b/gdb-6.6-buildid-locate-solib-missing-ids.patch
index 66fe4a5..73b763a 100644
--- a/gdb-6.6-buildid-locate-solib-missing-ids.patch
+++ b/gdb-6.6-buildid-locate-solib-missing-ids.patch
@@ -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
 --- a/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)
  	  {
  	    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);
  	      }
  	    else
diff --git a/gdb-6.6-buildid-locate.patch b/gdb-6.6-buildid-locate.patch
index 645bbe9..54cf9d2 100644
--- a/gdb-6.6-buildid-locate.patch
+++ b/gdb-6.6-buildid-locate.patch
@@ -6,6 +6,30 @@ Subject: gdb-6.6-buildid-locate.patch
 ;; New locating of the matching binaries from the pure core file (build-id).
 ;;=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
 --- a/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)
 +{
-+  if (build_id_addr >= bfd_section_vma (abfd, sect))
++  if (build_id_addr >= bfd_section_vma (sect))
 +    {
 +      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)
 +    {
 +      i_phdr = elf_get_phdr (core_bfd,
-+			     bfd_section_vma (core_bfd, candidate->sect),
++			     bfd_section_vma (candidate->sect),
 +			     &e_phnum, &loadbase);
 +      if (i_phdr != NULL)
 +	break;
@@ -687,7 +711,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
 +  if (abfd == NULL)
 +    return NULL;
 +
-+  result = xstrdup (bfd_get_filename (abfd));
++  result = xstrdup (bfd_get_filename (abfd.get ()));
 +  return result;
 +}
 +
@@ -958,7 +982,7 @@ diff --git a/gdb/corelow.c b/gdb/corelow.c
      inferior_ptid = ptid;			/* Yes, make it current.  */
  }
  
-+static int build_id_core_loads = 1;
++static bool build_id_core_loads = true;
 +
 +static void
 +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
 +     INFERIOR_PTID is still not set and libthread_db initialization crashes on
 +     PID == 0 in ps_pglobal_lookup.  */
-+  if (build_id_core_loads != 0)
++  if (build_id_core_loads != false)
 +    build_id_locate_exec (from_tty);
 +
    post_create_inferior (target, from_tty);
  
    /* Now go through the target stack looking for threads since there
-@@ -1062,4 +1117,11 @@ void
+@@ -973,4 +1028,11 @@ void
  _initialize_corelow (void)
  {
    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
 --- a/gdb/doc/gdb.texinfo
 +++ b/gdb/doc/gdb.texinfo
-@@ -20591,6 +20591,27 @@ information files.
+@@ -20679,6 +20679,27 @@ information files.
  
  @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
 --- a/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)
@@ -1096,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"),
-@@ -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>
  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)
      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>
  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 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;
  	}
  
@@ -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
 --- a/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 { } {
  	}
      }
  
diff --git a/gdb-6.6-scheduler_locking-step-is-default.patch b/gdb-6.6-scheduler_locking-step-is-default.patch
index 8bf061c..5d11284 100644
--- a/gdb-6.6-scheduler_locking-step-is-default.patch
+++ b/gdb-6.6-scheduler_locking-step-is-default.patch
@@ -9,7 +9,7 @@ Subject: gdb-6.6-scheduler_locking-step-is-default.patch
 diff --git a/gdb/infrun.c b/gdb/infrun.c
 --- a/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,
    NULL
  };
diff --git a/gdb-6.8-quit-never-aborts.patch b/gdb-6.8-quit-never-aborts.patch
index 57b4916..1522e9d 100644
--- a/gdb-6.8-quit-never-aborts.patch
+++ b/gdb-6.8-quit-never-aborts.patch
@@ -64,7 +64,7 @@ diff --git a/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;
  
- static int debug_timestamp = 0;
+ static bool debug_timestamp = false;
  
 +#ifdef NEED_DETACH_SIGSTOP
 +/* 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;
 +#endif
 +
- /* Nonzero means that strings with character values >0x7F should be printed
-    as octal escapes.  Zero means just print the value (e.g. it's an
+ /* True means that strings with character values >0x7F should be printed
+    as octal escapes.  False means just print the value (e.g. it's an
     international character, and the terminal or window can cope.)  */
diff --git a/gdb-archer-pie-addons-keep-disabled.patch b/gdb-archer-pie-addons-keep-disabled.patch
index b899ec6..dd1a80f 100644
--- a/gdb-archer-pie-addons-keep-disabled.patch
+++ b/gdb-archer-pie-addons-keep-disabled.patch
@@ -62,7 +62,7 @@ diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
 diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
 --- a/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.  */
  extern void maybe_print_thread_hit_breakpoint (struct ui_out *uiout);
  
diff --git a/gdb-archer-pie-addons.patch b/gdb-archer-pie-addons.patch
index 5ed943f..dc90e02 100644
--- a/gdb-archer-pie-addons.patch
+++ b/gdb-archer-pie-addons.patch
@@ -24,7 +24,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
    CORE_ADDR physaddr;
    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(thisfld) (FIELD_ENUMVAL_LVAL (thisfld) + 0)
  #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_DWARF_BLOCK(thisfld) ((thisfld).loc.dwarf_block)
  #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)			\
    (FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSNAME,		\
     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)			\
    (FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSADDR,		\
     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_ENUMVAL(thistype, n) FIELD_ENUMVAL (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
 --- a/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:
        retval = value_at_lazy (TYPE_FIELD_TYPE (type, fieldno),
diff --git a/gdb-attach-fail-reasons-5of5.patch b/gdb-attach-fail-reasons-5of5.patch
index 6df2ce8..8186277 100644
--- a/gdb-attach-fail-reasons-5of5.patch
+++ b/gdb-attach-fail-reasons-5of5.patch
@@ -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
 --- a/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,
  	      (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
 --- a/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.  */
    pass_signals ({});
  
diff --git a/gdb-bz1219747-attach-kills.patch b/gdb-bz1219747-attach-kills.patch
index 1630ff1..5884bac 100644
--- a/gdb-bz1219747-attach-kills.patch
+++ b/gdb-bz1219747-attach-kills.patch
@@ -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
-@@ -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,
  				      !batch_flag);
diff --git a/gdb-bz533176-fortran-omp-step.patch b/gdb-bz533176-fortran-omp-step.patch
index 864152c..3fd1a32 100644
--- a/gdb-bz533176-fortran-omp-step.patch
+++ b/gdb-bz533176-fortran-omp-step.patch
@@ -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
 --- a/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)
  	{
@@ -47,7 +47,7 @@ diff --git a/gdb/infrun.c b/gdb/infrun.c
  	  /* We're doing a "next".
  
  	     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);
  	  return;
diff --git a/gdb-container-rh-pkg.patch b/gdb-container-rh-pkg.patch
index c8fc69d..65dacb6 100644
--- a/gdb-container-rh-pkg.patch
+++ b/gdb-container-rh-pkg.patch
@@ -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
-@@ -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;
  
    if (packet_support (PACKET_qXfer_exec_file) != PACKET_ENABLE)
diff --git a/gdb-gnat-dwarf-crash-3of3.patch b/gdb-gnat-dwarf-crash-3of3.patch
index e56e258..3f3f089 100644
--- a/gdb-gnat-dwarf-crash-3of3.patch
+++ b/gdb-gnat-dwarf-crash-3of3.patch
@@ -42,7 +42,7 @@ gdb/
 diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
 --- a/gdb/dwarf2read.c
 +++ b/gdb/dwarf2read.c
-@@ -10527,6 +10527,13 @@ private:
+@@ -10602,6 +10602,13 @@ private:
  static void
  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
 --- a/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 ());
  	    }
  
@@ -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
 --- a/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?  */
  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 void
  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)
  	fprintf_unfiltered (gdb_stdlog,
  			    "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
  	 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);
      }
  
@@ -125,7 +125,7 @@ diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
    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_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;
      }
  
@@ -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)
  			     {
-@@ -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.  */
    linux_target->low_forget_process (pid);
diff --git a/gdb-vla-intel-fortran-strides.patch b/gdb-vla-intel-fortran-strides.patch
index 38a1dc7..eb7ef26 100644
--- a/gdb-vla-intel-fortran-strides.patch
+++ b/gdb-vla-intel-fortran-strides.patch
@@ -37,7 +37,7 @@ dbfd7140bf4c0500d1f5d192be781f83f78f7922
 diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
 --- a/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 *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;
-@@ -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;
    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.  */
-@@ -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;
      }
  
@@ -71,19 +71,20 @@ 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);
-@@ -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))
      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, &stride);
+-  range_type = create_range_type (NULL, orig_base_type, &low, &high, bias);
++  range_type = create_range_type (NULL, orig_base_type, &low, &high, bias,
++				  &stride);
  
    if (high_bound_is_count)
      TYPE_RANGE_DATA (range_type)->flag_upper_bound_is_count = 1;
 diff --git a/gdb/eval.c b/gdb/eval.c
 --- a/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;
  }
  
@@ -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);
  }
  
@@ -447,7 +448,7 @@ diff --git a/gdb/eval.c b/gdb/eval.c
  struct value *
  evaluate_subexp_standard (struct type *expect_type,
  			  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)
  	{
  	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_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);
  
@@ -532,7 +533,7 @@ diff --git a/gdb/eval.c b/gdb/eval.c
      case BINOP_LOGICAL_AND:
        arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
        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;
    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
 --- a/gdb/gdbtypes.c
 +++ b/gdb/gdbtypes.c
-@@ -912,7 +912,8 @@ operator== (const range_bounds &l, const range_bounds &r)
- struct type *
+@@ -914,7 +914,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)
-+		   const struct dynamic_prop *high_bound,
+ 		   const struct dynamic_prop *high_bound,
+-		   LONGEST bias)
++		   LONGEST bias,
 +		   const struct dynamic_prop *stride)
  {
    /* 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.  */
-@@ -932,6 +933,7 @@ create_range_type (struct type *result_type, struct type *index_type,
-     TYPE_ZALLOC (result_type, sizeof (struct range_bounds));
+@@ -935,6 +936,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;
 +  TYPE_RANGE_DATA (result_type)->stride = *stride;
  
    if (low_bound->kind == PROP_CONST && low_bound->data.const_val >= 0)
      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,
  			  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.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.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.data.const_val = 0;
 +
 +  result_type = create_range_type (result_type, index_type,
-+                                   &low, &high, &stride);
++                                   &low, &high, 0, &stride);
  
    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_allocated (result_type)))
      {
@@ -822,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;
-@@ -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;
    struct type *static_range_type, *static_target_type;
    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);
  
-@@ -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;
      }
  
@@ -845,20 +846,21 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
    static_target_type
      = resolve_dynamic_type_internal (TYPE_TARGET_TYPE (dyn_range_type),
  				     addr_stack, 0);
+   LONGEST bias = TYPE_RANGE_DATA (dyn_range_type)->bias;
    static_range_type = create_range_type (copy_type (dyn_range_type),
  					 static_target_type,
--					 &low_bound, &high_bound);
-+					 &low_bound, &high_bound, &stride);
-+
+-					 &low_bound, &high_bound, bias);
++					 &low_bound, &high_bound, bias,
++					 &stride);
    TYPE_RANGE_DATA (static_range_type)->flag_bound_evaluated = 1;
    return static_range_type;
  }
 diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
 --- a/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.  */
 +
@@ -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
       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.  */
  
      struct range_bounds *bounds;
@@ -875,7 +877,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
    } flds_bnds;
  
    /* * 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
  #define TYPE_LOW_BOUND_KIND(range_type) \
    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.  */
  #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))
  #define TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED(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) \
     (TYPE_HIGH_BOUND(TYPE_INDEX_TYPE((arraytype))))
-@@ -1950,6 +1965,7 @@ extern struct type *create_array_type_with_stride
-    struct dynamic_prop *, unsigned int);
- 
+@@ -1957,7 +1972,8 @@ extern struct type *create_array_type_with_stride
  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 *,
+-				       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
 --- a/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
 --- a/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);
  
diff --git a/gdb-vla-intel-fortran-vla-strings.patch b/gdb-vla-intel-fortran-vla-strings.patch
index c666c59..b24229c 100644
--- a/gdb-vla-intel-fortran-vla-strings.patch
+++ b/gdb-vla-intel-fortran-vla-strings.patch
@@ -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
-@@ -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
  
@@ -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
-@@ -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,
  				 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 */
  
-@@ -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
  	= 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 ();
-@@ -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
  	= (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 "
-@@ -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 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);
  
-@@ -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
  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
-@@ -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.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))
      {
-@@ -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->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);
-@@ -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);
    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),
-@@ -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);
    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]"),
-@@ -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;
    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)
-@@ -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
  	= 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)
-@@ -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
  	= 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)
-@@ -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.  */
    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
-@@ -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;
        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,
-@@ -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
  	{
  	  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 '*'.  */
-@@ -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);
  
@@ -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:
        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
-@@ -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);
  
    /* 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
-@@ -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:
@@ -419,7 +419,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
        {
  	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;
    unsigned int bit_stride = 0;
  
@@ -429,7 +429,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
  
    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));
  
@@ -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)
      {
-@@ -2236,6 +2243,28 @@ resolve_dynamic_struct (struct type *type,
+@@ -2240,6 +2247,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 *
-@@ -2284,7 +2313,12 @@ resolve_dynamic_type_internal (struct type *type,
+@@ -2288,7 +2317,12 @@ resolve_dynamic_type_internal (struct type *type,
  	    break;
  	  }
  
diff --git a/gdb-vla-intel-stringbt-fix.patch b/gdb-vla-intel-stringbt-fix.patch
index 9112347..084b747 100644
--- a/gdb-vla-intel-stringbt-fix.patch
+++ b/gdb-vla-intel-stringbt-fix.patch
@@ -30,7 +30,7 @@ Jan
 diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
 --- a/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.obj_address = 0;
  
diff --git a/gdb.spec b/gdb.spec
index 3ce9d57..26d2467 100644
--- a/gdb.spec
+++ b/gdb.spec
@@ -27,7 +27,7 @@
 Name: %{?scl_prefix}gdb
 
 # Freeze it when GDB gets branched
-%global snapsrc    20190824
+%global snapsrc    20190924
 # See timestamp of source gnulib installed into gdb/gnulib/ .
 %global snapgnulib 20161115
 %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.
 # `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
 # Do not provide URL for snapshots as the file lasts there only for 2 days.
@@ -1142,6 +1142,10 @@ fi
 %endif
 
 %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
 - Rebase to FSF GDB 8.3.50.20190824 (8.4pre).
 - Update 'v1.5-libipt-static.patch'.
diff --git a/sources b/sources
index 23b567a..0337a63 100644
--- a/sources
+++ b/sources
@@ -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.20190824.tar.xz) = 2a61acd207f3dcb3d047ad88ddd5662a596ca73b3e76efe42a0132032ba97b2258153831c2ca2523d10369591d5c72bef445b26e22554c46e38ee69903e09cf4
+SHA512 (gdb-8.3.50.20190924.tar.xz) = 0db49142d9ce93b3205596f97344e1b488ef74d0640c311fea929aa702074a221fd2c2558d8e2df917fb0398af5d670b1d200c30246b0535a6ae64a2c8ae0eb6