public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gdb] gdb-17.2-rebase-f44: Rebase to FSF GDB 8.3.50.20190802 (8.4pre).
@ 2026-06-27 23:59 Sergio Durigan Junior
0 siblings, 0 replies; only message in thread
From: Sergio Durigan Junior @ 2026-06-27 23:59 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/gdb
Branch : gdb-17.2-rebase-f44
Commit : f7760f831c6dc28f58ba0b8ce8086b7b1ef27443
Author : Sergio Durigan Junior <sergiodj@redhat.com>
Date : 2019-08-02T19:25:51-04:00
Stats : +186/-352 in 25 file(s)
URL : https://src.fedoraproject.org/rpms/gdb/c/f7760f831c6dc28f58ba0b8ce8086b7b1ef27443?branch=gdb-17.2-rebase-f44
Log:
Rebase to FSF GDB 8.3.50.20190802 (8.4pre).
---
diff --git a/.gitignore b/.gitignore
index a76a605..f251f23 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
/gdb-libstdc++-v3-python-8.1.1-20180626.tar.xz
/v2.0.tar.gz
-/gdb-8.3.50.20190702.tar.xz
+/gdb-8.3.50.20190802.tar.xz
diff --git a/_git_upstream_commit b/_git_upstream_commit
index d7a0f98..a94b831 100644
--- a/_git_upstream_commit
+++ b/_git_upstream_commit
@@ -1 +1 @@
-390b205f456be85e309570f1b6e9b75f27194de7
+371367a95037cac795af5cdc589a2aa0c7a4dcd3
diff --git a/gdb-6.3-gstack-20050411.patch b/gdb-6.3-gstack-20050411.patch
index c6bb26d..5989399 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
-@@ -1742,7 +1742,7 @@ info install-info clean-info dvi pdf install-pdf html install-html: force
+@@ -1745,7 +1745,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 \
-@@ -1791,7 +1791,25 @@ install-guile:
+@@ -1794,7 +1794,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 \
-@@ -1814,6 +1832,18 @@ uninstall: force $(CONFIG_UNINSTALL)
+@@ -1817,6 +1835,18 @@ uninstall: force $(CONFIG_UNINSTALL)
fi
@$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
diff --git a/gdb-6.3-rh-testversion-20041202.patch b/gdb-6.3-rh-testversion-20041202.patch
index 69fe3cd..22c3c5c 100644
--- a/gdb-6.3-rh-testversion-20041202.patch
+++ b/gdb-6.3-rh-testversion-20041202.patch
@@ -27,7 +27,7 @@ diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest
diff --git a/gdb/top.c b/gdb/top.c
--- a/gdb/top.c
+++ b/gdb/top.c
-@@ -2070,7 +2070,7 @@ init_gdb_version_vars (void)
+@@ -2068,7 +2068,7 @@ init_gdb_version_vars (void)
struct internalvar *major_version_var = create_internalvar ("_gdb_major");
struct internalvar *minor_version_var = create_internalvar ("_gdb_minor");
int vmajor = 0, vminor = 0, vrevision = 0;
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 aca516b..898c87a 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
-@@ -1188,6 +1188,10 @@ print_command_1 (const char *args, int voidprint)
+@@ -1202,6 +1202,10 @@ print_command_1 (const char *args, int voidprint)
if (exp != nullptr && *exp)
{
diff --git a/gdb-6.5-bz216711-clone-is-outermost.patch b/gdb-6.5-bz216711-clone-is-outermost.patch
index 3b67193..e74c07f 100644
--- a/gdb-6.5-bz216711-clone-is-outermost.patch
+++ b/gdb-6.5-bz216711-clone-is-outermost.patch
@@ -169,7 +169,7 @@ diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
-@@ -8448,6 +8448,9 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
+@@ -8445,6 +8445,9 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
tdep->xsave_xcr0_offset = -1;
@@ -182,7 +182,7 @@ diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
diff --git a/gdb/i386-tdep.h b/gdb/i386-tdep.h
--- a/gdb/i386-tdep.h
+++ b/gdb/i386-tdep.h
-@@ -255,6 +255,9 @@ struct gdbarch_tdep
+@@ -256,6 +256,9 @@ struct gdbarch_tdep
/* Regsets. */
const struct regset *fpregset;
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 885fa2a..5a4d7aa 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
-@@ -3148,6 +3148,13 @@ find_pc_sect_line (CORE_ADDR pc, struct obj_section *section, int notcurrent)
+@@ -3155,6 +3155,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 2b7462b..78604b6 100644
--- a/gdb-6.6-buildid-locate-core-as-arg.patch
+++ b/gdb-6.6-buildid-locate-core-as-arg.patch
@@ -61,19 +61,6 @@ Http://sourceware.org/ml/gdb-patches/2010-01/msg00517.html
* exec.c (exec_file_attach): Print a more useful error message if the
user did "gdb core".
-diff --git a/gdb/common/common-exceptions.h b/gdb/common/common-exceptions.h
---- a/gdb/common/common-exceptions.h
-+++ b/gdb/common/common-exceptions.h
-@@ -106,6 +106,9 @@ enum errors {
- "_ERROR" is appended to the name. */
- MAX_COMPLETIONS_REACHED_ERROR,
-
-+ /* Attempt to load a core file as executable. */
-+ IS_CORE_ERROR,
-+
- /* Add more errors here. */
- NR_ERRORS
- };
diff --git a/gdb/exec.c b/gdb/exec.c
--- a/gdb/exec.c
+++ b/gdb/exec.c
@@ -117,6 +104,19 @@ diff --git a/gdb/exec.c b/gdb/exec.c
}
if (build_section_table (exec_bfd, §ions, §ions_end))
+diff --git a/gdb/gdbsupport/common-exceptions.h b/gdb/gdbsupport/common-exceptions.h
+--- a/gdb/gdbsupport/common-exceptions.h
++++ b/gdb/gdbsupport/common-exceptions.h
+@@ -106,6 +106,9 @@ enum errors {
+ "_ERROR" is appended to the name. */
+ MAX_COMPLETIONS_REACHED_ERROR,
+
++ /* Attempt to load a core file as executable. */
++ IS_CORE_ERROR,
++
+ /* Add more errors here. */
+ NR_ERRORS
+ };
diff --git a/gdb/main.c b/gdb/main.c
--- a/gdb/main.c
+++ b/gdb/main.c
diff --git a/gdb-6.6-buildid-locate-rpm-librpm-workaround.patch b/gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
index 0634527..f8dcbeb 100644
--- a/gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
+++ b/gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
@@ -9,7 +9,7 @@ Subject: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
diff --git a/gdb/build-id.c b/gdb/build-id.c
--- a/gdb/build-id.c
+++ b/gdb/build-id.c
-@@ -710,6 +710,19 @@ build_id_to_filename (const struct bfd_build_id *build_id, char **link_return)
+@@ -712,6 +712,19 @@ build_id_to_filename (const struct bfd_build_id *build_id, char **link_return)
#include <dlfcn.h>
#endif
diff --git a/gdb-6.6-buildid-locate-rpm-scl.patch b/gdb-6.6-buildid-locate-rpm-scl.patch
index daabf53..3a5e442 100644
--- a/gdb-6.6-buildid-locate-rpm-scl.patch
+++ b/gdb-6.6-buildid-locate-rpm-scl.patch
@@ -12,7 +12,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=953585
diff --git a/gdb/build-id.c b/gdb/build-id.c
--- a/gdb/build-id.c
+++ b/gdb/build-id.c
-@@ -744,7 +744,11 @@ static int missing_rpm_list_entries;
+@@ -746,7 +746,11 @@ static int missing_rpm_list_entries;
/* Returns the count of newly added rpms. */
static int
@@ -24,7 +24,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
{
static int rpm_init_done = 0;
rpmts ts;
-@@ -851,7 +855,11 @@ missing_rpm_enlist (const char *filename)
+@@ -853,7 +857,11 @@ missing_rpm_enlist (const char *filename)
mi = rpmtsInitIterator_p (ts, RPMTAG_BASENAMES, filename, 0);
if (mi != NULL)
{
@@ -36,7 +36,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
{
Header h;
char *debuginfo, **slot, *s, *s2;
-@@ -969,6 +977,37 @@ missing_rpm_enlist (const char *filename)
+@@ -971,6 +979,37 @@ missing_rpm_enlist (const char *filename)
xfree (debuginfo);
count++;
}
@@ -74,7 +74,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
rpmdbFreeIterator_p (mi);
}
-@@ -978,6 +1017,20 @@ missing_rpm_enlist (const char *filename)
+@@ -980,6 +1019,20 @@ missing_rpm_enlist (const char *filename)
return count;
}
@@ -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
-@@ -3456,6 +3456,16 @@ read_gdb_index_from_buffer (struct objfile *objfile,
+@@ -3462,6 +3462,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)
{
-@@ -3467,6 +3477,10 @@ to use the section anyway."),
+@@ -3473,6 +3483,10 @@ to use the section anyway."),
warning_printed = 1;
}
return 0;
diff --git a/gdb-6.6-buildid-locate-rpm.patch b/gdb-6.6-buildid-locate-rpm.patch
index 97cc973..7182246 100644
--- a/gdb-6.6-buildid-locate-rpm.patch
+++ b/gdb-6.6-buildid-locate-rpm.patch
@@ -235,7 +235,7 @@ diff --git a/gdb/aclocal.m4 b/gdb/aclocal.m4
diff --git a/gdb/build-id.c b/gdb/build-id.c
--- a/gdb/build-id.c
+++ b/gdb/build-id.c
-@@ -31,6 +31,7 @@
+@@ -33,6 +33,7 @@
#include "gdb_bfd.h"
#include "gdbcmd.h"
#include "gdbcore.h"
@@ -243,7 +243,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
#include "libbfd.h"
#include "objfiles.h"
#include "observable.h"
-@@ -699,8 +700,359 @@ build_id_to_filename (const struct bfd_build_id *build_id, char **link_return)
+@@ -701,8 +702,359 @@ build_id_to_filename (const struct bfd_build_id *build_id, char **link_return)
return result;
}
@@ -604,7 +604,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
avoidance. */
struct missing_filepair
-@@ -754,11 +1106,17 @@ missing_filepair_change (void)
+@@ -756,11 +1108,17 @@ missing_filepair_change (void)
/* All their memory came just from missing_filepair_OBSTACK. */
missing_filepair_hash = NULL;
}
@@ -622,7 +622,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
missing_filepair_change ();
}
-@@ -825,14 +1183,39 @@ debug_print_missing (const char *binary, const char *debug)
+@@ -827,14 +1185,39 @@ debug_print_missing (const char *binary, const char *debug)
*slot = missing_filepair;
@@ -1464,7 +1464,7 @@ diff --git a/gdb/event-top.c b/gdb/event-top.c
--- a/gdb/event-top.c
+++ b/gdb/event-top.c
@@ -40,6 +40,7 @@
- #include "common/buffer.h"
+ #include "gdbsupport/buffer.h"
#include "ser-event.h"
#include "gdb_select.h"
+#include "symfile.h"
@@ -1495,7 +1495,7 @@ diff --git a/gdb/event-top.c b/gdb/event-top.c
diff --git a/gdb/symfile.h b/gdb/symfile.h
--- a/gdb/symfile.h
+++ b/gdb/symfile.h
-@@ -535,6 +535,8 @@ void map_symbol_filenames (symbol_filename_ftype *fun, void *data,
+@@ -542,6 +542,8 @@ extern void generic_load (const char *args, int from_tty);
/* build-id support. */
extern struct bfd_build_id *build_id_addr_get (CORE_ADDR addr);
extern void debug_print_missing (const char *binary, const char *debug);
diff --git a/gdb-6.6-buildid-locate.patch b/gdb-6.6-buildid-locate.patch
index fbda62b..48e59c1 100644
--- a/gdb-6.6-buildid-locate.patch
+++ b/gdb-6.6-buildid-locate.patch
@@ -9,12 +9,10 @@ Subject: gdb-6.6-buildid-locate.patch
diff --git a/gdb/build-id.c b/gdb/build-id.c
--- a/gdb/build-id.c
+++ b/gdb/build-id.c
-@@ -22,15 +22,71 @@
- #include "gdb_bfd.h"
- #include "build-id.h"
- #include "common/gdb_vecs.h"
--#include "symfile.h"
--#include "objfiles.h"
+@@ -24,13 +24,71 @@
+ #include "gdbsupport/gdb_vecs.h"
+ #include "symfile.h"
+ #include "objfiles.h"
+#include <sys/stat.h>
+#include "elf-bfd.h"
+#include "elf/common.h"
@@ -84,7 +82,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
{
if (!bfd_check_format (abfd, bfd_object))
return NULL;
-@@ -42,6 +98,348 @@ build_id_bfd_get (bfd *abfd)
+@@ -42,6 +100,348 @@ build_id_bfd_get (bfd *abfd)
return NULL;
}
@@ -433,7 +431,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
/* See build-id.h. */
int
-@@ -50,7 +448,7 @@ build_id_verify (bfd *abfd, size_t check_len, const bfd_byte *check)
+@@ -50,7 +450,7 @@ build_id_verify (bfd *abfd, size_t check_len, const bfd_byte *check)
const struct bfd_build_id *found;
int retval = 0;
@@ -442,7 +440,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
if (found == NULL)
warning (_("File \"%s\" has no build-id, file skipped"),
-@@ -65,62 +463,173 @@ build_id_verify (bfd *abfd, size_t check_len, const bfd_byte *check)
+@@ -65,62 +465,173 @@ build_id_verify (bfd *abfd, size_t check_len, const bfd_byte *check)
return retval;
}
@@ -532,7 +530,8 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
- printf_unfiltered (_(" no, unable to open.\n"));
+ if (add_debug_suffix)
+ link += ".debug";
-+
+
+- return {};
+ ret_link = link;
+
+ struct stat statbuf_trash;
@@ -560,8 +559,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
+
+ /* We expect to be silent on the non-existing files. */
+ gdb_bfd_ref_ptr debug_bfd = gdb_bfd_open (filename.get (), gnutarget, -1);
-
-- return {};
++
+ if (debug_bfd == NULL)
+ {
+ if (separate_debug_file_debug)
@@ -599,13 +597,13 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
+
+ if (add_debug_suffix)
+ link0 += ".debug";
-
-- return {};
++
+ /* If the symlink has target request to install the target.
+ BASE-debuginfo.rpm contains the symlink but BASE.rpm may be missing.
+ https://bugzilla.redhat.com/show_bug.cgi?id=981154 */
+ std::string link0_resolved (link_resolve (link0.c_str (), 0));
-+
+
+- return {};
+ if (link_all.empty ())
+ link_all = link0_resolved;
+ else
@@ -643,7 +641,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
{
/* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will
cause "/.build-id/..." lookups. */
-@@ -143,16 +652,16 @@ build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id)
+@@ -143,16 +654,16 @@ build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id)
if (size > 0)
{
size--;
@@ -665,7 +663,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
if (debug_bfd != NULL)
return debug_bfd;
-@@ -166,7 +675,8 @@ build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id)
+@@ -166,7 +677,8 @@ build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id)
if (strcmp (gdb_sysroot, TARGET_SYSROOT_PREFIX) != 0)
{
link = gdb_sysroot + link;
@@ -675,7 +673,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
if (debug_bfd != NULL)
return debug_bfd;
}
-@@ -175,22 +685,189 @@ build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id)
+@@ -175,22 +687,189 @@ build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id)
return {};
}
@@ -868,7 +866,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c
/* Prevent looping on a stripped .debug file. */
if (abfd != NULL
&& filename_cmp (bfd_get_filename (abfd.get ()),
-@@ -203,3 +880,21 @@ find_separate_debug_file_by_buildid (struct objfile *objfile)
+@@ -203,3 +882,21 @@ find_separate_debug_file_by_buildid (struct objfile *objfile)
return std::string ();
}
@@ -895,7 +893,7 @@ diff --git a/gdb/build-id.h b/gdb/build-id.h
+++ b/gdb/build-id.h
@@ -23,9 +23,10 @@
#include "gdb_bfd.h"
- #include "common/rsp-low.h"
+ #include "gdbsupport/rsp-low.h"
-/* Locate NT_GNU_BUILD_ID from ABFD and return its content. */
+/* Separate debuginfo files have corrupted PHDR but SHDR is correct there.
@@ -1036,7 +1034,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
-@@ -20427,6 +20427,27 @@ information files.
+@@ -20581,6 +20581,27 @@ information files.
@end table
@@ -1089,7 +1087,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
-@@ -2677,7 +2677,7 @@ dwarf2_get_dwz_file (struct dwarf2_per_objfile *dwarf2_per_objfile)
+@@ -2683,7 +2683,7 @@ dwarf2_get_dwz_file (struct dwarf2_per_objfile *dwarf2_per_objfile)
}
if (dwz_bfd == NULL)
@@ -1098,7 +1096,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
if (dwz_bfd == NULL)
error (_("could not find '.gnu_debugaltlink' file for %s"),
-@@ -6186,7 +6186,7 @@ get_gdb_index_contents_from_section (objfile *obj, T *section_owner)
+@@ -6192,7 +6192,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)
{
@@ -1107,7 +1105,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
if (build_id == nullptr)
return {};
-@@ -6199,7 +6199,7 @@ get_gdb_index_contents_from_cache (objfile *obj, dwarf2_per_objfile *dwarf2_obj)
+@@ -6205,7 +6205,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)
{
@@ -1144,7 +1142,7 @@ diff --git a/gdb/elfread.c b/gdb/elfread.c
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
-@@ -618,6 +618,10 @@ struct objfile
+@@ -619,6 +619,10 @@ struct objfile
htab_up static_links;
};
@@ -1167,7 +1165,7 @@ diff --git a/gdb/python/py-objfile.c b/gdb/python/py-objfile.c
}
catch (const gdb_exception &except)
{
-@@ -533,7 +533,7 @@ objfpy_lookup_objfile_by_build_id (const char *build_id)
+@@ -601,7 +601,7 @@ objfpy_lookup_objfile_by_build_id (const char *build_id)
/* Don't return separate debug files. */
if (objfile->separate_debug_objfile_backlink != NULL)
continue;
@@ -1245,10 +1243,17 @@ diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
diff --git a/gdb/symfile.h b/gdb/symfile.h
--- a/gdb/symfile.h
+++ b/gdb/symfile.h
-@@ -532,6 +532,10 @@ void expand_symtabs_matching
+@@ -532,12 +532,17 @@ void expand_symtabs_matching
void map_symbol_filenames (symbol_filename_ftype *fun, void *data,
int need_fullname);
++
+ /* Target-agnostic function to load the sections of an executable into memory.
+
+ ARGS should be in the form "EXECUTABLE [OFFSET]", where OFFSET is an
+ optional offset to apply to each section. */
+ extern void generic_load (const char *args, int from_tty);
+
+/* build-id support. */
+extern struct bfd_build_id *build_id_addr_get (CORE_ADDR addr);
+extern void debug_print_missing (const char *binary, const char *debug);
@@ -1307,7 +1312,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
-@@ -1755,6 +1755,17 @@ proc default_gdb_start { } {
+@@ -1793,6 +1793,17 @@ proc default_gdb_start { } {
}
}
diff --git a/gdb-6.8-bz436037-reg-no-longer-active.patch b/gdb-6.8-bz436037-reg-no-longer-active.patch
index a1f6080..3731b0f 100644
--- a/gdb-6.8-bz436037-reg-no-longer-active.patch
+++ b/gdb-6.8-bz436037-reg-no-longer-active.patch
@@ -9,7 +9,7 @@ Subject: gdb-6.8-bz436037-reg-no-longer-active.patch
diff --git a/gdb/valops.c b/gdb/valops.c
--- a/gdb/valops.c
+++ b/gdb/valops.c
-@@ -1092,6 +1092,8 @@ value_assign (struct value *toval, struct value *fromval)
+@@ -1093,6 +1093,8 @@ value_assign (struct value *toval, struct value *fromval)
struct gdbarch *gdbarch;
int value_reg;
@@ -18,7 +18,7 @@ diff --git a/gdb/valops.c b/gdb/valops.c
/* Figure out which frame this is in currently.
We use VALUE_FRAME_ID for obtaining the value's frame id instead of
-@@ -1101,8 +1103,14 @@ value_assign (struct value *toval, struct value *fromval)
+@@ -1102,8 +1104,14 @@ value_assign (struct value *toval, struct value *fromval)
frame. */
frame = frame_find_by_id (VALUE_FRAME_ID (toval));
diff --git a/gdb-6.8-quit-never-aborts.patch b/gdb-6.8-quit-never-aborts.patch
index baab460..6dc98a2 100644
--- a/gdb-6.8-quit-never-aborts.patch
+++ b/gdb-6.8-quit-never-aborts.patch
@@ -45,7 +45,7 @@ diff --git a/gdb/extension.c b/gdb/extension.c
diff --git a/gdb/top.c b/gdb/top.c
--- a/gdb/top.c
+++ b/gdb/top.c
-@@ -1677,7 +1677,13 @@ quit_force (int *exit_arg, int from_tty)
+@@ -1675,7 +1675,13 @@ quit_force (int *exit_arg, int from_tty)
qt.from_tty = from_tty;
@@ -62,7 +62,7 @@ diff --git a/gdb/top.c b/gdb/top.c
diff --git a/gdb/utils.c b/gdb/utils.c
--- a/gdb/utils.c
+++ b/gdb/utils.c
-@@ -100,6 +100,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;
diff --git a/gdb-archer-pie-addons-keep-disabled.patch b/gdb-archer-pie-addons-keep-disabled.patch
index de2a95c..35f8cef 100644
--- a/gdb-archer-pie-addons-keep-disabled.patch
+++ b/gdb-archer-pie-addons-keep-disabled.patch
@@ -8,7 +8,7 @@ Subject: gdb-archer-pie-addons-keep-disabled.patch
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
-@@ -15416,6 +15416,50 @@ static struct cmd_list_element *enablebreaklist = NULL;
+@@ -15386,6 +15386,50 @@ static struct cmd_list_element *enablebreaklist = NULL;
cmd_list_element *commands_cmd_element = nullptr;
@@ -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
-@@ -1674,6 +1674,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 6867e4b..5ed943f 100644
--- a/gdb-archer-pie-addons.patch
+++ b/gdb-archer-pie-addons.patch
@@ -8,7 +8,7 @@ Subject: gdb-archer-pie-addons.patch
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
--- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h
-@@ -511,6 +511,7 @@ enum field_loc_kind
+@@ -510,6 +510,7 @@ enum field_loc_kind
{
FIELD_LOC_KIND_BITPOS, /**< bitpos */
FIELD_LOC_KIND_ENUMVAL, /**< enumval */
@@ -16,7 +16,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
FIELD_LOC_KIND_PHYSADDR, /**< physaddr */
FIELD_LOC_KIND_PHYSNAME, /**< physname */
FIELD_LOC_KIND_DWARF_BLOCK /**< dwarf_block */
-@@ -562,6 +563,7 @@ union field_location
+@@ -561,6 +562,7 @@ union field_location
field. Otherwise, physname is the mangled label of the
static field. */
@@ -24,7 +24,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
CORE_ADDR physaddr;
const char *physname;
-@@ -1451,6 +1453,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *);
+@@ -1450,6 +1452,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) \
-@@ -1462,6 +1465,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *);
+@@ -1461,6 +1464,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))
-@@ -1478,6 +1482,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *);
+@@ -1477,6 +1481,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))
diff --git a/gdb-archer.patch b/gdb-archer.patch
index f28902e..4c93bbe 100644
--- a/gdb-archer.patch
+++ b/gdb-archer.patch
@@ -53,18 +53,6 @@ diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
@c resolve the situation of these eventually
@item -tui
@cindex @code{--tui}
-diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi
---- a/gdb/doc/python.texi
-+++ b/gdb/doc/python.texi
-@@ -90,8 +90,6 @@ containing @code{end}. For example:
-
- @smallexample
- (@value{GDBP}) python
--Type python script
--End with a line saying just "end".
- >print 23
- >end
- 23
diff --git a/gdb/gdb-gdb.gdb.in b/gdb/gdb-gdb.gdb.in
--- a/gdb/gdb-gdb.gdb.in
+++ b/gdb/gdb-gdb.gdb.in
@@ -348,7 +336,7 @@ diff --git a/gdb/python/python.c b/gdb/python/python.c
@@ -94,6 +94,8 @@ const struct extension_language_defn extension_language_python =
#include "linespec.h"
#include "source.h"
- #include "common/version.h"
+ #include "gdbsupport/version.h"
+#include "inferior.h"
+#include "gdbthread.h"
#include "target.h"
diff --git a/gdb-btrobust.patch b/gdb-btrobust.patch
index c28ab06..2c7e2d3 100644
--- a/gdb-btrobust.patch
+++ b/gdb-btrobust.patch
@@ -14,7 +14,7 @@ printed, but a default backtrace will occur in this case.
diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c
--- a/gdb/python/py-framefilter.c
+++ b/gdb/python/py-framefilter.c
-@@ -1139,6 +1139,7 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang,
+@@ -1204,6 +1204,7 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang,
htab_eq_pointer,
NULL));
@@ -22,7 +22,7 @@ diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c
while (true)
{
gdbpy_ref<> item (PyIter_Next (iterable.get ()));
-@@ -1147,8 +1148,8 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang,
+@@ -1212,8 +1213,8 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang,
{
if (PyErr_Occurred ())
{
@@ -33,7 +33,7 @@ diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c
}
break;
}
-@@ -1180,7 +1181,8 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang,
+@@ -1245,7 +1246,8 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang,
/* Do not exit on error printing a single frame. Print the
error and continue with other frames. */
if (success == EXT_LANG_BT_ERROR)
diff --git a/gdb-bz533176-fortran-omp-step.patch b/gdb-bz533176-fortran-omp-step.patch
index 65cfdb8..864152c 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
-@@ -6445,6 +6445,16 @@ process_event_stop_test (struct execution_control_state *ecs)
+@@ -6462,6 +6462,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
-@@ -6478,6 +6488,7 @@ process_event_stop_test (struct execution_control_state *ecs)
+@@ -6495,6 +6505,7 @@ process_event_stop_test (struct execution_control_state *ecs)
keep_going (ecs);
return;
diff --git a/gdb-gnat-dwarf-crash-3of3.patch b/gdb-gnat-dwarf-crash-3of3.patch
index ab2d6ae..1fa68f6 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
-@@ -10540,6 +10540,13 @@ private:
+@@ -10546,6 +10546,13 @@ private:
static void
process_die (struct die_info *die, struct dwarf2_cu *cu)
{
diff --git a/gdb-moribund-utrace-workaround.patch b/gdb-moribund-utrace-workaround.patch
index f8d6617..7419b9a 100644
--- a/gdb-moribund-utrace-workaround.patch
+++ b/gdb-moribund-utrace-workaround.patch
@@ -14,7 +14,7 @@ Bug in FSF GDB exploited by the ptrace-on-utrace interaction.
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
-@@ -11911,6 +11911,8 @@ update_global_location_list (enum ugll_insert_mode insert_mode)
+@@ -11881,6 +11881,8 @@ update_global_location_list (enum ugll_insert_mode insert_mode)
traps we can no longer explain. */
old_loc->events_till_retirement = 3 * (thread_count () + 1);
diff --git a/gdb-vla-intel-fortran-strides.patch b/gdb-vla-intel-fortran-strides.patch
index 501750d..95caf46 100644
--- a/gdb-vla-intel-fortran-strides.patch
+++ b/gdb-vla-intel-fortran-strides.patch
@@ -34,116 +34,10 @@ dbfd7140bf4c0500d1f5d192be781f83f78f7922
gdb/value.h | 2 +
23 files changed, 1242 insertions(+), 183 deletions(-)
-diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
---- a/gdb/dwarf2loc.c
-+++ b/gdb/dwarf2loc.c
-@@ -2426,11 +2426,14 @@ dwarf2_locexpr_baton_eval (const struct dwarf2_locexpr_baton *dlbaton,
- /* See dwarf2loc.h. */
-
- int
--dwarf2_evaluate_property (const struct dynamic_prop *prop,
-+dwarf2_evaluate_property_signed (const struct dynamic_prop *prop,
- struct frame_info *frame,
- struct property_addr_info *addr_stack,
-- CORE_ADDR *value)
-+ CORE_ADDR *value,
-+ int is_signed)
- {
-+ int rc = 0;
-+
- if (prop == NULL)
- return 0;
-
-@@ -2454,7 +2457,7 @@ dwarf2_evaluate_property (const struct dynamic_prop *prop,
-
- *value = value_as_address (val);
- }
-- return 1;
-+ rc = 1;
- }
- }
- break;
-@@ -2476,7 +2479,7 @@ dwarf2_evaluate_property (const struct dynamic_prop *prop,
- if (!value_optimized_out (val))
- {
- *value = value_as_address (val);
-- return 1;
-+ rc = 1;
- }
- }
- }
-@@ -2484,8 +2487,8 @@ dwarf2_evaluate_property (const struct dynamic_prop *prop,
-
- case PROP_CONST:
- *value = prop->data.const_val;
-- return 1;
--
-+ rc = 1;
-+ break;
- case PROP_ADDR_OFFSET:
- {
- struct dwarf2_property_baton *baton
-@@ -2510,11 +2513,38 @@ dwarf2_evaluate_property (const struct dynamic_prop *prop,
- val = value_at (baton->offset_info.type,
- pinfo->addr + baton->offset_info.offset);
- *value = value_as_address (val);
-- return 1;
-+ rc = 1;
- }
-+ break;
- }
-
-- return 0;
-+ if (rc == 1 && is_signed == 1)
-+ {
-+ /* If we have a valid return candidate and it's value is signed,
-+ we have to sign-extend the value because CORE_ADDR on 64bit machine has
-+ 8 bytes but address size of an 32bit application is 4 bytes. */
-+ struct gdbarch * gdbarch = target_gdbarch ();
-+ const int addr_bit = gdbarch_addr_bit (gdbarch);
-+ const CORE_ADDR neg_mask = ((~0) << (addr_bit - 1));
-+
-+ /* Check if signed bit is set and sign-extend values. */
-+ if (*value & (neg_mask))
-+ *value |= (neg_mask );
-+ }
-+ return rc;
-+}
-+
-+int
-+dwarf2_evaluate_property (const struct dynamic_prop *prop,
-+ struct frame_info *frame,
-+ struct property_addr_info *addr_stack,
-+ CORE_ADDR *value)
-+{
-+ return dwarf2_evaluate_property_signed (prop,
-+ frame,
-+ addr_stack,
-+ value,
-+ 0);
- }
-
- /* See dwarf2loc.h. */
-diff --git a/gdb/dwarf2loc.h b/gdb/dwarf2loc.h
---- a/gdb/dwarf2loc.h
-+++ b/gdb/dwarf2loc.h
-@@ -143,6 +143,12 @@ int dwarf2_evaluate_property (const struct dynamic_prop *prop,
- struct property_addr_info *addr_stack,
- CORE_ADDR *value);
-
-+int dwarf2_evaluate_property_signed (const struct dynamic_prop *prop,
-+ struct frame_info *frame,
-+ struct property_addr_info *addr_stack,
-+ CORE_ADDR *value,
-+ int is_signed);
-+
- /* A helper for the compiler interface that compiles a single dynamic
- property to C code.
-
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
-@@ -17760,7 +17760,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
+@@ -17831,7 +17831,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;
@@ -152,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;
-@@ -17780,7 +17780,9 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
+@@ -17852,7 +17852,9 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
low.kind = PROP_CONST;
high.kind = PROP_CONST;
@@ -162,13 +56,13 @@ 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. */
-@@ -17813,6 +17815,14 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
+@@ -17885,6 +17887,14 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
break;
}
+ attr = dwarf2_attr (die, DW_AT_byte_stride, cu);
+ if (attr)
-+ if (!attr_to_dynamic_prop (attr, die, cu, &stride))
++ if (!attr_to_dynamic_prop (attr, die, cu, &stride, base_type))
+ complaint (_("Missing DW_AT_byte_stride "
+ "- DIE at 0x%s [in module %s]"),
+ sect_offset_str (die->sect_off),
@@ -176,8 +70,8 @@ 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);
-@@ -17905,7 +17915,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
+ attr_to_dynamic_prop (attr, die, cu, &low, base_type);
+@@ -17938,7 +17948,7 @@ 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;
@@ -723,7 +617,7 @@ diff --git a/gdb/expprint.c b/gdb/expprint.c
diff --git a/gdb/expression.h b/gdb/expression.h
--- a/gdb/expression.h
+++ b/gdb/expression.h
-@@ -165,28 +165,27 @@ extern void dump_raw_expression (struct expression *,
+@@ -167,28 +167,27 @@ extern void dump_raw_expression (struct expression *,
struct ui_file *, const char *);
extern void dump_prefix_expression (struct expression *, struct ui_file *);
@@ -874,9 +768,9 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
+ const struct dynamic_prop *high_bound,
+ const struct dynamic_prop *stride)
{
- if (result_type == NULL)
- result_type = alloc_type_copy (index_type);
-@@ -927,6 +928,7 @@ create_range_type (struct type *result_type, struct type *index_type,
+ /* 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));
TYPE_RANGE_DATA (result_type)->low = *low_bound;
TYPE_RANGE_DATA (result_type)->high = *high_bound;
@@ -884,7 +778,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
if (low_bound->kind == PROP_CONST && low_bound->data.const_val >= 0)
TYPE_UNSIGNED (result_type) = 1;
-@@ -955,7 +957,7 @@ struct type *
+@@ -960,7 +962,7 @@ struct type *
create_static_range_type (struct type *result_type, struct type *index_type,
LONGEST low_bound, LONGEST high_bound)
{
@@ -893,7 +787,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
low.kind = PROP_CONST;
low.data.const_val = low_bound;
-@@ -963,7 +965,11 @@ create_static_range_type (struct type *result_type, struct type *index_type,
+@@ -968,7 +970,11 @@ create_static_range_type (struct type *result_type, struct type *index_type,
high.kind = PROP_CONST;
high.data.const_val = high_bound;
@@ -906,7 +800,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
return result_type;
}
-@@ -1181,16 +1187,20 @@ create_array_type_with_stride (struct type *result_type,
+@@ -1186,16 +1192,20 @@ create_array_type_with_stride (struct type *result_type,
&& (!type_not_associated (result_type)
&& !type_not_allocated (result_type)))
{
@@ -928,7 +822,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;
-@@ -1975,12 +1985,12 @@ resolve_dynamic_range (struct type *dyn_range_type,
+@@ -1980,7 +1990,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;
@@ -937,27 +831,12 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
gdb_assert (TYPE_CODE (dyn_range_type) == TYPE_CODE_RANGE);
- prop = &TYPE_RANGE_DATA (dyn_range_type)->low;
-- if (dwarf2_evaluate_property (prop, NULL, addr_stack, &value))
-+ if (dwarf2_evaluate_property_signed (prop, NULL, addr_stack, &value, 1))
- {
- low_bound.kind = PROP_CONST;
- low_bound.data.const_val = value;
-@@ -1992,7 +2002,7 @@ resolve_dynamic_range (struct type *dyn_range_type,
- }
-
- prop = &TYPE_RANGE_DATA (dyn_range_type)->high;
-- if (dwarf2_evaluate_property (prop, NULL, addr_stack, &value))
-+ if (dwarf2_evaluate_property_signed (prop, NULL, addr_stack, &value, 1))
- {
- high_bound.kind = PROP_CONST;
- high_bound.data.const_val = value;
-@@ -2007,12 +2017,20 @@ resolve_dynamic_range (struct type *dyn_range_type,
+@@ -2012,12 +2022,20 @@ resolve_dynamic_range (struct type *dyn_range_type,
high_bound.data.const_val = 0;
}
+ prop = &TYPE_RANGE_DATA (dyn_range_type)->stride;
-+ if (dwarf2_evaluate_property_signed (prop, NULL, addr_stack, &value, 1))
++ if (dwarf2_evaluate_property (prop, NULL, addr_stack, &value))
+ {
+ stride.kind = PROP_CONST;
+ stride.data.const_val = value;
@@ -977,7 +856,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
--- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h
-@@ -618,6 +618,10 @@ struct range_bounds
+@@ -617,6 +617,10 @@ struct range_bounds
struct dynamic_prop high;
@@ -988,7 +867,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. */
-@@ -782,7 +786,6 @@ struct main_type
+@@ -781,7 +785,6 @@ struct main_type
/* * Union member used for range types. */
struct range_bounds *bounds;
@@ -996,7 +875,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
} flds_bnds;
/* * Slot to point to additional language-specific fields of this
-@@ -1341,6 +1344,15 @@ extern bool set_type_align (struct type *, ULONGEST);
+@@ -1340,6 +1343,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
@@ -1012,7 +891,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
/* Property accessors for the type data location. */
#define TYPE_DATA_LOCATION(thistype) \
-@@ -1376,6 +1388,9 @@ extern bool set_type_align (struct type *, ULONGEST);
+@@ -1375,6 +1387,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))
@@ -1022,7 +901,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
#define TYPE_ARRAY_UPPER_BOUND_VALUE(arraytype) \
(TYPE_HIGH_BOUND(TYPE_INDEX_TYPE((arraytype))))
-@@ -1951,6 +1966,7 @@ extern struct type *create_array_type_with_stride
+@@ -1950,6 +1965,7 @@ extern struct type *create_array_type_with_stride
struct dynamic_prop *, unsigned int);
extern struct type *create_range_type (struct type *, struct type *,
@@ -1072,7 +951,7 @@ diff --git a/gdb/parse.c b/gdb/parse.c
diff --git a/gdb/rust-exp.y b/gdb/rust-exp.y
--- a/gdb/rust-exp.y
+++ b/gdb/rust-exp.y
-@@ -2492,24 +2492,28 @@ rust_parser::convert_ast_to_expression (const struct rust_op *operation,
+@@ -2493,24 +2493,28 @@ rust_parser::convert_ast_to_expression (const struct rust_op *operation,
case OP_RANGE:
{
@@ -1669,17 +1548,6 @@ new file mode 100644
+program testprog
+ call sub
+end
-diff --git a/gdb/testsuite/gdb.fortran/vla-ptype.exp b/gdb/testsuite/gdb.fortran/vla-ptype.exp
---- a/gdb/testsuite/gdb.fortran/vla-ptype.exp
-+++ b/gdb/testsuite/gdb.fortran/vla-ptype.exp
-@@ -98,3 +98,7 @@ gdb_test "ptype vla2" "type = $real, allocatable \\(:,:,:\\)" "ptype vla2 not al
- gdb_test "ptype vla2(5, 45, 20)" \
- "no such vector element \\\(vector not allocated\\\)" \
- "ptype vla2(5, 45, 20) not allocated"
-+
-+gdb_breakpoint [gdb_get_line_number "vla1-neg-bounds"]
-+gdb_continue_to_breakpoint "vla1-neg-bounds"
-+gdb_test "ptype vla1" "type = $real \\(-2:1,-5:4,-3:-1\\)" "ptype vla1 negative bounds"
diff --git a/gdb/testsuite/gdb.fortran/vla-sizeof.exp b/gdb/testsuite/gdb.fortran/vla-sizeof.exp
--- a/gdb/testsuite/gdb.fortran/vla-sizeof.exp
+++ b/gdb/testsuite/gdb.fortran/vla-sizeof.exp
@@ -1712,16 +1580,16 @@ diff --git a/gdb/testsuite/gdb.fortran/vla-sizeof.exp b/gdb/testsuite/gdb.fortra
"print sizeof non-associated sliced pvla"
# Try to access values in pointer to VLA and compare them
-@@ -58,4 +60,8 @@ gdb_continue_to_breakpoint "pvla-associated"
+@@ -58,7 +60,8 @@ gdb_continue_to_breakpoint "pvla-associated"
gdb_test "print sizeof(pvla)" " = 4000" "print sizeof associated pvla"
gdb_test "print sizeof(pvla(3,2,1))" "4" \
"print sizeof element from associated pvla"
-gdb_test "print sizeof(pvla(3:4,2,1))" "800" "print sizeof sliced pvla"
-+gdb_test "print sizeof(pvla(3:4,2,1))" "8" "print sizeof sliced pvla"
+
-+gdb_breakpoint [gdb_get_line_number "vla1-neg-bounds"]
-+gdb_continue_to_breakpoint "vla1-neg-bounds"
-+gdb_test "print sizeof(vla1)" " = 480" "print sizeof vla1 negative bounds"
++gdb_test "print sizeof(pvla(3:4,2,1))" "8" "print sizeof sliced pvla"
+
+ gdb_breakpoint [gdb_get_line_number "vla1-neg-bounds-v1"]
+ gdb_continue_to_breakpoint "vla1-neg-bounds-v1"
diff --git a/gdb/testsuite/gdb.fortran/vla-stride.exp b/gdb/testsuite/gdb.fortran/vla-stride.exp
new file mode 100644
--- /dev/null
@@ -1805,28 +1673,10 @@ new file mode 100644
+
+ pvla => null() ! single-element
+end program vla_stride
-diff --git a/gdb/testsuite/gdb.fortran/vla.f90 b/gdb/testsuite/gdb.fortran/vla.f90
---- a/gdb/testsuite/gdb.fortran/vla.f90
-+++ b/gdb/testsuite/gdb.fortran/vla.f90
-@@ -54,4 +54,14 @@ program vla
-
- allocate (vla3 (2,2)) ! vla2-deallocated
- vla3(:,:) = 13
-+
-+ allocate (vla1 (-2:1, -5:4, -3:-1))
-+ l = allocated(vla1)
-+
-+ vla1(:, :, :) = 1
-+ vla1(-2, -3, -1) = -231
-+
-+ deallocate (vla1) ! vla1-neg-bounds
-+ l = allocated(vla1)
-+
- end program vla
diff --git a/gdb/valarith.c b/gdb/valarith.c
--- a/gdb/valarith.c
+++ b/gdb/valarith.c
-@@ -187,11 +187,17 @@ value_subscripted_rvalue (struct value *array, LONGEST index, int lowerbound)
+@@ -188,11 +188,17 @@ value_subscripted_rvalue (struct value *array, LONGEST index, LONGEST lowerbound
struct type *array_type = check_typedef (value_type (array));
struct type *elt_type = check_typedef (TYPE_TARGET_TYPE (array_type));
ULONGEST elt_size = type_length_units (elt_type);
@@ -2081,7 +1931,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
-@@ -1140,6 +1140,8 @@ extern struct value *varying_to_slice (struct value *);
+@@ -1143,6 +1143,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 b527a00..9ea44ae 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
-@@ -573,6 +573,8 @@ SH-5/SH64 running OpenBSD SH-5/SH64 support in sh*-*-openbsd*
+@@ -634,6 +634,8 @@ SH-5/SH64 running OpenBSD SH-5/SH64 support in sh*-*-openbsd*
*** Changes in GDB 8.1
@@ -77,36 +77,37 @@ 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,8 @@ static void read_signatured_type (struct signatured_type *);
+@@ -1810,7 +1810,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,
-- struct dynamic_prop *prop);
-+ struct dynamic_prop *prop, const gdb_byte *additional_data,
+- struct dynamic_prop *prop, struct type *type);
++ struct dynamic_prop *prop,
++ struct type *default_type,
++ const gdb_byte *additional_data,
+ int additional_data_size);
/* memory allocation interface */
-@@ -13683,7 +13684,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
- {
+@@ -13688,7 +13691,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);
-+ attr_to_dynamic_prop (attr, die, cu, newobj->static_link, NULL, 0);
+ attr_to_dynamic_prop (attr, die, cu, newobj->static_link,
+- dwarf2_per_cu_addr_type (cu->per_cu));
++ dwarf2_per_cu_addr_type (cu->per_cu), NULL, 0);
}
cu->list_in_scope = cu->get_builder ()->get_local_symbols ();
-@@ -16442,7 +16443,8 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
-
+@@ -16450,7 +16453,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);
-+ stride_ok = attr_to_dynamic_prop (attr, die, cu, byte_stride_prop,
-+ NULL, 0);
+ stride_ok = attr_to_dynamic_prop (attr, die, cu, byte_stride_prop,
+- prop_type);
++ prop_type, NULL, 0);
if (!stride_ok)
{
complaint (_("unable to read array DW_AT_byte_stride "
-@@ -17200,29 +17202,90 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
+@@ -17208,29 +17211,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;
@@ -152,8 +153,8 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
+ /* Operand for DW_OP_deref_size. */
+ (gdb_byte) DW_UNSND(byte_size) };
+
-+ if (!attr_to_dynamic_prop (attr, die, cu, &high, append_ops,
-+ ARRAY_SIZE(append_ops)))
++ if (!attr_to_dynamic_prop (attr, die, cu, &high, index_type,
++ append_ops, ARRAY_SIZE(append_ops)))
+ complaint (_("Could not parse DW_AT_byte_size"));
+ }
+ else if (bit_size != NULL)
@@ -166,8 +167,8 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
+ const gdb_byte append_ops[] =
+ { DW_OP_deref };
+
-+ if (!attr_to_dynamic_prop (attr, die, cu, &high, append_ops,
-+ ARRAY_SIZE(append_ops)))
++ if (!attr_to_dynamic_prop (attr, die, cu, &high, index_type,
++ append_ops, ARRAY_SIZE(append_ops)))
+ complaint (_("Could not parse DW_AT_string_length"));
+ }
+
@@ -208,26 +209,20 @@ 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);
-@@ -17654,7 +17717,8 @@ read_base_type (struct die_info *die, struct dwarf2_cu *cu)
-
+@@ -17663,7 +17727,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)
-+ struct dwarf2_cu *cu, struct dynamic_prop *prop,
+ struct dwarf2_cu *cu, struct dynamic_prop *prop,
+- struct type *default_type)
++ struct type *default_type,
+ const gdb_byte *additional_data, int additional_data_size)
{
struct dwarf2_property_baton *baton;
struct obstack *obstack
-@@ -17665,14 +17729,33 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
-
- if (attr_form_is_block (attr))
- {
-- baton = XOBNEW (obstack, struct dwarf2_property_baton);
-+ baton = XOBNEW(obstack, struct dwarf2_property_baton);
- baton->referenced_type = NULL;
- baton->locexpr.per_cu = cu->per_cu;
-- baton->locexpr.size = DW_BLOCK (attr)->size;
-- baton->locexpr.data = DW_BLOCK (attr)->data;
+@@ -17682,9 +17747,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;
+
+ if (additional_data != NULL && additional_data_size > 0)
+ {
@@ -256,12 +251,13 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
}
else if (attr_form_is_ref (attr))
{
-@@ -17705,8 +17788,28 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
+@@ -17717,9 +17803,29 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
baton = XOBNEW (obstack, struct dwarf2_property_baton);
- baton->referenced_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.size = DW_BLOCK (target_attr)->size;
- baton->locexpr.data = DW_BLOCK (target_attr)->data;
+ baton->locexpr.is_reference = true;
+
+ if (additional_data != NULL && additional_data_size > 0)
+ {
@@ -287,61 +283,62 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
prop->data.baton = baton;
prop->kind = PROP_LOCEXPR;
gdb_assert (prop->data.baton != NULL);
-@@ -17817,7 +17920,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
+@@ -17889,7 +17995,8 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
attr = dwarf2_attr (die, DW_AT_byte_stride, cu);
if (attr)
-- if (!attr_to_dynamic_prop (attr, die, cu, &stride))
-+ if (!attr_to_dynamic_prop (attr, die, cu, &stride, NULL, 0))
+- if (!attr_to_dynamic_prop (attr, die, cu, &stride, base_type))
++ if (!attr_to_dynamic_prop (attr, die, cu, &stride, base_type,
++ NULL, 0))
complaint (_("Missing DW_AT_byte_stride "
"- DIE at 0x%s [in module %s]"),
sect_offset_str (die->sect_off),
-@@ -17825,7 +17928,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
+@@ -17897,7 +18004,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
attr = dwarf2_attr (die, DW_AT_lower_bound, cu);
if (attr)
-- attr_to_dynamic_prop (attr, die, cu, &low);
-+ attr_to_dynamic_prop (attr, die, cu, &low, NULL, 0);
+- attr_to_dynamic_prop (attr, die, cu, &low, base_type);
++ attr_to_dynamic_prop (attr, die, cu, &low, base_type, NULL, 0);
else if (!low_default_is_valid)
complaint (_("Missing DW_AT_lower_bound "
"- DIE at %s [in module %s]"),
-@@ -17834,10 +17937,10 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
+@@ -17906,10 +18013,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);
-- if (!attr_to_dynamic_prop (attr, die, cu, &high))
-+ if (!attr_to_dynamic_prop (attr, die, cu, &high, NULL, 0))
+- if (!attr_to_dynamic_prop (attr, die, cu, &high, base_type))
++ if (!attr_to_dynamic_prop (attr, die, cu, &high, base_type, NULL, 0))
{
attr = attr_count = dwarf2_attr (die, DW_AT_count, cu);
-- if (attr_to_dynamic_prop (attr, die, cu, &high))
-+ if (attr_to_dynamic_prop (attr, die, cu, &high, NULL, 0))
+- if (attr_to_dynamic_prop (attr, die, cu, &high, base_type))
++ if (attr_to_dynamic_prop (attr, die, cu, &high, base_type, NULL, 0))
{
/* If bounds are constant do the final calculation here. */
if (low.kind == PROP_CONST && high.kind == PROP_CONST)
-@@ -25505,7 +25608,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
- attr = dwarf2_attr (die, DW_AT_allocated, cu);
- if (attr_form_is_block (attr))
+@@ -25558,7 +25665,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
{
-- if (attr_to_dynamic_prop (attr, die, cu, &prop))
-+ if (attr_to_dynamic_prop (attr, die, cu, &prop, NULL, 0))
+ struct type *prop_type
+ = dwarf2_per_cu_addr_sized_int_type (cu->per_cu, false);
+- if (attr_to_dynamic_prop (attr, die, cu, &prop, prop_type))
++ if (attr_to_dynamic_prop (attr, die, cu, &prop, prop_type, NULL, 0))
add_dyn_prop (DYN_PROP_ALLOCATED, prop, type);
}
else if (attr != NULL)
-@@ -25519,7 +25622,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
- attr = dwarf2_attr (die, DW_AT_associated, cu);
- if (attr_form_is_block (attr))
+@@ -25574,7 +25681,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
{
-- if (attr_to_dynamic_prop (attr, die, cu, &prop))
-+ if (attr_to_dynamic_prop (attr, die, cu, &prop, NULL, 0))
+ struct type *prop_type
+ = dwarf2_per_cu_addr_sized_int_type (cu->per_cu, false);
+- if (attr_to_dynamic_prop (attr, die, cu, &prop, prop_type))
++ if (attr_to_dynamic_prop (attr, die, cu, &prop, prop_type, NULL, 0))
add_dyn_prop (DYN_PROP_ASSOCIATED, prop, type);
}
else if (attr != NULL)
-@@ -25531,7 +25634,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
-
+@@ -25587,7 +25694,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))
-+ if (attr_to_dynamic_prop (attr, die, cu, &prop, NULL, 0))
+ if (attr_to_dynamic_prop (attr, die, cu, &prop,
+- dwarf2_per_cu_addr_type (cu->per_cu)))
++ dwarf2_per_cu_addr_type (cu->per_cu), NULL, 0))
add_dyn_prop (DYN_PROP_DATA_LOCATION, prop, type);
if (dwarf2_per_objfile->die_type_hash == NULL)
@@ -404,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
-@@ -1898,7 +1898,8 @@ is_dynamic_type_internal (struct type *type, int top_level)
+@@ -1903,7 +1903,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. */
@@ -414,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
-@@ -1932,6 +1933,7 @@ is_dynamic_type_internal (struct type *type, int top_level)
+@@ -1937,6 +1938,7 @@ is_dynamic_type_internal (struct type *type, int top_level)
}
case TYPE_CODE_ARRAY:
@@ -422,7 +419,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
{
gdb_assert (TYPE_NFIELDS (type) == 1);
-@@ -2050,7 +2052,8 @@ resolve_dynamic_array (struct type *type,
+@@ -2055,7 +2057,8 @@ resolve_dynamic_array (struct type *type,
struct dynamic_prop *prop;
unsigned int bit_stride = 0;
@@ -432,7 +429,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
type = copy_type (type);
-@@ -2075,11 +2078,15 @@ resolve_dynamic_array (struct type *type,
+@@ -2080,11 +2083,15 @@ resolve_dynamic_array (struct type *type,
ary_dim = check_typedef (TYPE_TARGET_TYPE (elt_type));
@@ -449,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)
{
-@@ -2234,6 +2241,28 @@ resolve_dynamic_struct (struct type *type,
+@@ -2236,6 +2243,28 @@ resolve_dynamic_struct (struct type *type,
return resolved_type;
}
@@ -478,7 +475,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
/* Worker for resolved_dynamic_type. */
static struct type *
-@@ -2282,7 +2311,12 @@ resolve_dynamic_type_internal (struct type *type,
+@@ -2284,7 +2313,12 @@ resolve_dynamic_type_internal (struct type *type,
break;
}
@@ -828,15 +825,6 @@ diff --git a/gdb/testsuite/gdb.fortran/print_type.exp b/gdb/testsuite/gdb.fortra
}
-gdb_test "ptype realp" "type = PTR TO -> \\( $real \\)"
+gdb_test "ptype realp" "type = PTR TO -> \\( $real\\)"
-diff --git a/gdb/testsuite/gdb.fortran/vla-ptype.exp b/gdb/testsuite/gdb.fortran/vla-ptype.exp
---- a/gdb/testsuite/gdb.fortran/vla-ptype.exp
-+++ b/gdb/testsuite/gdb.fortran/vla-ptype.exp
-@@ -101,4 +101,4 @@ gdb_test "ptype vla2(5, 45, 20)" \
-
- gdb_breakpoint [gdb_get_line_number "vla1-neg-bounds"]
- gdb_continue_to_breakpoint "vla1-neg-bounds"
--gdb_test "ptype vla1" "type = $real \\(-2:1,-5:4,-3:-1\\)" "ptype vla1 negative bounds"
-+gdb_test "ptype vla1" "type = $real, allocatable \\(-2:1,-5:4,-3:-1\\)" "ptype vla1 negative bounds"
diff --git a/gdb/testsuite/gdb.fortran/vla-strings.exp b/gdb/testsuite/gdb.fortran/vla-strings.exp
new file mode 100644
--- /dev/null
@@ -1093,7 +1081,7 @@ diff --git a/gdb/valops.c b/gdb/valops.c
diff --git a/gdb/valprint.c b/gdb/valprint.c
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
-@@ -1143,12 +1143,6 @@ value_check_printable (struct value *val, struct ui_file *stream,
+@@ -1144,12 +1144,6 @@ value_check_printable (struct value *val, struct ui_file *stream,
return 0;
}
diff --git a/gdb.spec b/gdb.spec
index 507a8a5..93a2aa0 100644
--- a/gdb.spec
+++ b/gdb.spec
@@ -27,7 +27,7 @@
Name: %{?scl_prefix}gdb
# Freeze it when GDB gets branched
-%global snapsrc 20190702
+%global snapsrc 20190802
# 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: 20%{?dist}
+Release: 21%{?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.
@@ -1141,6 +1141,9 @@ fi
%endif
%changelog
+* Fri Aug 2 2019 Sergio Durigan Junior <sergiodj@redhat.com> - 8.3.50.20190802-21
+- Rebase to FSF GDB 8.3.50.20190802 (8.4pre).
+
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
diff --git a/sources b/sources
index 421acca..2a0615e 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (gdb-libstdc++-v3-python-8.1.1-20180626.tar.xz) = a8b1c54dd348cfeb37da73f968742896be3dd13a4215f8d8519870c2abea915f5176c3fa6989ddd10f20020a16f0fab20cbae68ee8d58a82234d8778023520f8
SHA512 (v2.0.tar.gz) = ec63151e842c81cc73ea11ba560b63e005cefbe19d98de24ae5c8caa4de7c9c1d71d1ec5b6214a347592eac675b75a3d2b26d4691ca86f91020ebfea8e912939
-SHA512 (gdb-8.3.50.20190702.tar.xz) = e36682601f5dc9ac1cd2bbdbfed45888046cf6df43231dc604271e63ca3609e9aabcca24b50c72146d7160855093497b1e217db34e0878a74c313524eb371d6f
+SHA512 (gdb-8.3.50.20190802.tar.xz) = 464c06de734d7ea724e7a09b35044681872bc05162fc852c47c7eede51930ede655306a80f8518fc8e0845eee13525a48f033a3623f16b6b400eaf49b90b3ac7
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-06-27 23:59 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-27 23:59 [rpms/gdb] gdb-17.2-rebase-f44: Rebase to FSF GDB 8.3.50.20190802 (8.4pre) Sergio Durigan Junior
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox