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 #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 +#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 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 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 - 8.3.50.20190802-21 +- Rebase to FSF GDB 8.3.50.20190802 (8.4pre). + * Thu Jul 25 2019 Fedora Release Engineering - 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