From c9daf934972b13c561ed03111680a32129f30337 Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Tue, 5 Jun 2018 15:25:07 -0400 Subject: [PATCH] Rebase to FSF GDB 8.1.50.20180605 (8.2pre). --- .gitignore | 2 +- _git_upstream_commit | 2 +- gdb-6.3-gstack-20050411.patch | 6 +- gdb-6.5-bz216711-clone-is-outermost.patch | 10 +- gdb-6.6-buildid-locate.patch | 4 +- gdb-6.8-sparc64-silence-memcpy-check.patch | 2 +- gdb-archer-pie-addons-keep-disabled.patch | 2 +- gdb-archer-pie-addons.patch | 6 +- gdb-archer.patch | 6 +- gdb-attach-fail-reasons-5of5.patch | 4 +- gdb-bz541866-rwatch-before-run.patch | 8 +- gdb-container-rh-pkg.patch | 2 +- gdb-glibc-strstr-workaround.patch | 2 +- gdb-gnat-dwarf-crash-3of3.patch | 2 +- gdb-moribund-utrace-workaround.patch | 2 +- gdb-rhbz795424-bitpos-20of25.patch | 201 ++++++++------------- gdb-rhbz795424-bitpos-21of25.patch | 2 +- gdb-rhbz795424-bitpos-22of25.patch | 22 +-- gdb-rhbz795424-bitpos-23of25.patch | 90 ++++----- gdb-rhbz795424-bitpos-25of25.patch | 2 +- gdb-vla-intel-fortran-strides.patch | 36 ++-- gdb-vla-intel-fortran-vla-strings.patch | 40 ++-- gdb-x86_64-i386-syscall-restart.patch | 2 +- gdb.spec | 7 +- sources | 2 +- 25 files changed, 206 insertions(+), 258 deletions(-) diff --git a/.gitignore b/.gitignore index c26b5d5..1e1d158 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ /gdb-libstdc++-v3-python-7.1.1-20170526.tar.xz /v1.6.1.tar.gz -/gdb-8.1.50.20180529.tar.xz +/gdb-8.1.50.20180605.tar.xz diff --git a/_git_upstream_commit b/_git_upstream_commit index 688cd57..efee1b2 100644 --- a/_git_upstream_commit +++ b/_git_upstream_commit @@ -1 +1 @@ -b8283aea9e599f17dbae7f52223994e3a9168143 +54d343a24019367e85bb2e90966f2da483868637 diff --git a/gdb-6.3-gstack-20050411.patch b/gdb-6.3-gstack-20050411.patch index 43f5647..4253c75 100644 --- a/gdb-6.3-gstack-20050411.patch +++ b/gdb-6.3-gstack-20050411.patch @@ -18,7 +18,7 @@ FileName: gdb-6.3-gstack-20050411.patch diff --git a/gdb/Makefile.in b/gdb/Makefile.in --- a/gdb/Makefile.in +++ b/gdb/Makefile.in -@@ -1729,7 +1729,7 @@ info install-info clean-info dvi pdf install-pdf html install-html: force +@@ -1731,7 +1731,7 @@ info install-info clean-info dvi pdf install-pdf html install-html: force install: all @$(MAKE) $(FLAGS_TO_PASS) install-only @@ -27,7 +27,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 \ -@@ -1778,7 +1778,25 @@ install-guile: +@@ -1780,7 +1780,25 @@ install-guile: install-python: $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(GDB_DATADIR)/python/gdb @@ -54,7 +54,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 \ -@@ -1801,6 +1819,18 @@ uninstall: force $(CONFIG_UNINSTALL) +@@ -1803,6 +1821,18 @@ uninstall: force $(CONFIG_UNINSTALL) fi @$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do diff --git a/gdb-6.5-bz216711-clone-is-outermost.patch b/gdb-6.5-bz216711-clone-is-outermost.patch index 2bcf613..9e2429d 100644 --- a/gdb-6.5-bz216711-clone-is-outermost.patch +++ b/gdb-6.5-bz216711-clone-is-outermost.patch @@ -129,7 +129,7 @@ diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c --- a/gdb/amd64-tdep.c +++ b/gdb/amd64-tdep.c -@@ -2597,6 +2597,7 @@ amd64_frame_unwind_stop_reason (struct frame_info *this_frame, +@@ -2595,6 +2595,7 @@ amd64_frame_unwind_stop_reason (struct frame_info *this_frame, { struct amd64_frame_cache *cache = amd64_frame_cache (this_frame, this_cache); @@ -137,7 +137,7 @@ diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c if (!cache->base_p) return UNWIND_UNAVAILABLE; -@@ -2605,6 +2606,10 @@ amd64_frame_unwind_stop_reason (struct frame_info *this_frame, +@@ -2603,6 +2604,10 @@ amd64_frame_unwind_stop_reason (struct frame_info *this_frame, if (cache->base == 0) return UNWIND_OUTERMOST; @@ -148,7 +148,7 @@ diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c return UNWIND_NO_REASON; } -@@ -2739,6 +2744,7 @@ amd64_sigtramp_frame_this_id (struct frame_info *this_frame, +@@ -2737,6 +2742,7 @@ amd64_sigtramp_frame_this_id (struct frame_info *this_frame, { struct amd64_frame_cache *cache = amd64_sigtramp_frame_cache (this_frame, this_cache); @@ -156,7 +156,7 @@ diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c if (!cache->base_p) (*this_id) = frame_id_build_unavailable_stack (get_frame_pc (this_frame)); -@@ -2747,6 +2753,11 @@ amd64_sigtramp_frame_this_id (struct frame_info *this_frame, +@@ -2745,6 +2751,11 @@ amd64_sigtramp_frame_this_id (struct frame_info *this_frame, /* This marks the outermost frame. */ return; } @@ -171,7 +171,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 -@@ -8428,6 +8428,9 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) +@@ -8404,6 +8404,9 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) tdep->xsave_xcr0_offset = -1; diff --git a/gdb-6.6-buildid-locate.patch b/gdb-6.6-buildid-locate.patch index bac6e2c..0fe8ac2 100644 --- a/gdb-6.6-buildid-locate.patch +++ b/gdb-6.6-buildid-locate.patch @@ -1024,7 +1024,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c diff --git a/gdb/elfread.c b/gdb/elfread.c --- a/gdb/elfread.c +++ b/gdb/elfread.c -@@ -1290,7 +1290,9 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) +@@ -1287,7 +1287,9 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) && objfile->separate_debug_objfile == NULL && objfile->separate_debug_objfile_backlink == NULL) { @@ -1035,7 +1035,7 @@ diff --git a/gdb/elfread.c b/gdb/elfread.c if (debugfile.empty ()) debugfile = find_separate_debug_file_by_debuglink (objfile); -@@ -1302,6 +1304,10 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) +@@ -1299,6 +1301,10 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) symbol_file_add_separate (abfd.get (), debugfile.c_str (), symfile_flags, objfile); } diff --git a/gdb-6.8-sparc64-silence-memcpy-check.patch b/gdb-6.8-sparc64-silence-memcpy-check.patch index 22994b3..c379a69 100644 --- a/gdb-6.8-sparc64-silence-memcpy-check.patch +++ b/gdb-6.8-sparc64-silence-memcpy-check.patch @@ -17,5 +17,5 @@ diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c /* Floating return values. */ + len = (len <= 8) ? len : 8; memcpy (buf, valbuf, len); - regcache_cooked_write (regcache, SPARC_F0_REGNUM, buf); + regcache->cooked_write (SPARC_F0_REGNUM, buf); if (len > 4) diff --git a/gdb-archer-pie-addons-keep-disabled.patch b/gdb-archer-pie-addons-keep-disabled.patch index 123238d..5e29ccc 100644 --- a/gdb-archer-pie-addons-keep-disabled.patch +++ b/gdb-archer-pie-addons-keep-disabled.patch @@ -10,7 +10,7 @@ FileName: 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 -@@ -15511,6 +15511,50 @@ initialize_breakpoint_ops (void) +@@ -15514,6 +15514,50 @@ initialize_breakpoint_ops (void) static struct cmd_list_element *enablebreaklist = NULL; diff --git a/gdb-archer-pie-addons.patch b/gdb-archer-pie-addons.patch index eddce02..ac36f51 100644 --- a/gdb-archer-pie-addons.patch +++ b/gdb-archer-pie-addons.patch @@ -26,7 +26,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h CORE_ADDR physaddr; const char *physname; -@@ -1453,6 +1455,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *); +@@ -1438,6 +1440,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) @@ -34,7 +34,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) \ -@@ -1464,6 +1467,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *); +@@ -1449,6 +1452,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)) @@ -42,7 +42,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)) -@@ -1480,6 +1484,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *); +@@ -1465,6 +1469,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 bfdcfe3..237ede6 100644 --- a/gdb-archer.patch +++ b/gdb-archer.patch @@ -19,7 +19,7 @@ tromey/python diff --git a/gdb/Makefile.in b/gdb/Makefile.in --- a/gdb/Makefile.in +++ b/gdb/Makefile.in -@@ -2096,6 +2096,12 @@ stamp-h: $(srcdir)/config.in config.status +@@ -2098,6 +2098,12 @@ stamp-h: $(srcdir)/config.in config.status CONFIG_LINKS= \ $(SHELL) config.status @@ -29,7 +29,7 @@ diff --git a/gdb/Makefile.in b/gdb/Makefile.in + CONFIG_HEADERS= \ + $(SHELL) config.status + - config.status: $(srcdir)/configure configure.tgt configure.host ../bfd/development.sh + config.status: $(srcdir)/configure configure.nat configure.tgt configure.host ../bfd/development.sh $(SHELL) config.status --recheck diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in @@ -454,7 +454,7 @@ new file mode 100644 diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h -@@ -641,6 +641,9 @@ class gdbpy_enter_varobj : public gdbpy_enter +@@ -643,6 +643,9 @@ class gdbpy_enter_varobj : public gdbpy_enter }; diff --git a/gdb-attach-fail-reasons-5of5.patch b/gdb-attach-fail-reasons-5of5.patch index e2726aa..d8fa568 100644 --- a/gdb-attach-fail-reasons-5of5.patch +++ b/gdb-attach-fail-reasons-5of5.patch @@ -257,7 +257,7 @@ diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c -@@ -966,7 +966,16 @@ linux_ptrace_fun () +@@ -967,7 +967,16 @@ linux_ptrace_fun () { if (ptrace (PTRACE_TRACEME, 0, (PTRACE_TYPE_ARG3) 0, (PTRACE_TYPE_ARG4) 0) < 0) @@ -349,7 +349,7 @@ diff --git a/gdb/nat/linux-ptrace.c b/gdb/nat/linux-ptrace.c diff --git a/gdb/nat/linux-ptrace.h b/gdb/nat/linux-ptrace.h --- a/gdb/nat/linux-ptrace.h +++ b/gdb/nat/linux-ptrace.h -@@ -189,6 +189,7 @@ extern std::string linux_ptrace_attach_fail_reason (pid_t pid); +@@ -184,6 +184,7 @@ extern std::string linux_ptrace_attach_fail_reason (pid_t pid); extern std::string linux_ptrace_attach_fail_reason_string (ptid_t ptid, int err); extern void linux_ptrace_init_warnings (void); diff --git a/gdb-bz541866-rwatch-before-run.patch b/gdb-bz541866-rwatch-before-run.patch index d45c42d..d02beb3 100644 --- a/gdb-bz541866-rwatch-before-run.patch +++ b/gdb-bz541866-rwatch-before-run.patch @@ -12,7 +12,7 @@ FileName: gdb-bz541866-rwatch-before-run.patch diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c -@@ -8808,7 +8808,7 @@ init_breakpoint_sal (struct breakpoint *b, struct gdbarch *gdbarch, +@@ -8798,7 +8798,7 @@ init_breakpoint_sal (struct breakpoint *b, struct gdbarch *gdbarch, int enabled, int internal, unsigned flags, int display_canonical) { @@ -21,7 +21,7 @@ diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c if (type == bp_hardware_breakpoint) { -@@ -14345,7 +14345,7 @@ enable_breakpoint_disp (struct breakpoint *bpt, enum bpdisp disposition, +@@ -14348,7 +14348,7 @@ enable_breakpoint_disp (struct breakpoint *bpt, enum bpdisp disposition, if (bpt->type == bp_hardware_breakpoint) { @@ -99,7 +99,7 @@ new file mode 100644 diff --git a/gdb/configure.nat b/gdb/configure.nat --- a/gdb/configure.nat +++ b/gdb/configure.nat -@@ -237,6 +237,7 @@ case ${gdb_host} in +@@ -238,6 +238,7 @@ case ${gdb_host} in ;; i386) # Host: Intel 386 running GNU/Linux. @@ -107,7 +107,7 @@ diff --git a/gdb/configure.nat b/gdb/configure.nat NATDEPFILES="${NATDEPFILES} x86-nat.o x86-dregs.o \ i386-linux-nat.o x86-linux-nat.o linux-btrace.o \ x86-linux.o x86-linux-dregs.o" -@@ -289,6 +290,7 @@ case ${gdb_host} in +@@ -290,6 +291,7 @@ case ${gdb_host} in case ${gdb_host_cpu} in i386) # Host: GNU/Linux x86-64 diff --git a/gdb-container-rh-pkg.patch b/gdb-container-rh-pkg.patch index f24f66c..3c9e772 100644 --- a/gdb-container-rh-pkg.patch +++ b/gdb-container-rh-pkg.patch @@ -11,7 +11,7 @@ FileName: gdb-container-rh-pkg.patch diff --git a/gdb/remote.c b/gdb/remote.c --- a/gdb/remote.c +++ b/gdb/remote.c -@@ -14048,7 +14048,17 @@ remote_target::pid_to_exec_file (int pid) +@@ -14047,7 +14047,17 @@ remote_target::pid_to_exec_file (int pid) char *annex = NULL; if (packet_support (PACKET_qXfer_exec_file) != PACKET_ENABLE) diff --git a/gdb-glibc-strstr-workaround.patch b/gdb-glibc-strstr-workaround.patch index a1243d9..95dcca6 100644 --- a/gdb-glibc-strstr-workaround.patch +++ b/gdb-glibc-strstr-workaround.patch @@ -11,7 +11,7 @@ FileName: gdb-glibc-strstr-workaround.patch diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c -@@ -21272,6 +21272,26 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu, +@@ -21261,6 +21261,26 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu, /* Cache this symbol's name and the name's demangled form (if any). */ SYMBOL_SET_LANGUAGE (sym, cu->language, &objfile->objfile_obstack); linkagename = dwarf2_physname (name, die, cu); diff --git a/gdb-gnat-dwarf-crash-3of3.patch b/gdb-gnat-dwarf-crash-3of3.patch index 01cc642..5eb2f97 100644 --- a/gdb-gnat-dwarf-crash-3of3.patch +++ b/gdb-gnat-dwarf-crash-3of3.patch @@ -44,7 +44,7 @@ gdb/ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c -@@ -10491,6 +10491,13 @@ private: +@@ -10489,6 +10489,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 4b88926..7e0b0fd 100644 --- a/gdb-moribund-utrace-workaround.patch +++ b/gdb-moribund-utrace-workaround.patch @@ -16,7 +16,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 -@@ -12017,6 +12017,8 @@ update_global_location_list (enum ugll_insert_mode insert_mode) +@@ -12007,6 +12007,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-rhbz795424-bitpos-20of25.patch b/gdb-rhbz795424-bitpos-20of25.patch index 61316a1..ddf3eef 100644 --- a/gdb-rhbz795424-bitpos-20of25.patch +++ b/gdb-rhbz795424-bitpos-20of25.patch @@ -475,7 +475,7 @@ Content-Disposition: attachment; filename=bitpos-main.patch diff --git a/gdb/aarch64-linux-nat.c b/gdb/aarch64-linux-nat.c --- a/gdb/aarch64-linux-nat.c +++ b/gdb/aarch64-linux-nat.c -@@ -743,7 +743,7 @@ aarch64_linux_nat_target::remove_watchpoint (CORE_ADDR addr, int len, +@@ -740,7 +740,7 @@ aarch64_linux_nat_target::remove_watchpoint (CORE_ADDR addr, int len, /* Implement the "region_ok_for_hw_watchpoint" target_ops method. */ int @@ -686,7 +686,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c val = value_cast (value_type (component), val); -@@ -4468,7 +4470,7 @@ ensure_lval (struct value *val) +@@ -4462,7 +4464,7 @@ ensure_lval (struct value *val) if (VALUE_LVAL (val) == not_lval || VALUE_LVAL (val) == lval_internalvar) { @@ -695,7 +695,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c const CORE_ADDR addr = value_as_long (value_allocate_space_in_inferior (len)); -@@ -4552,7 +4554,7 @@ static CORE_ADDR +@@ -4546,7 +4548,7 @@ static CORE_ADDR value_pointer (struct value *value, struct type *type) { struct gdbarch *gdbarch = get_type_arch (type); @@ -704,7 +704,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c gdb_byte *buf = (gdb_byte *) alloca (len); CORE_ADDR addr; -@@ -6685,7 +6687,7 @@ value_tag_from_contents_and_address (struct type *type, +@@ -6657,7 +6659,7 @@ value_tag_from_contents_and_address (struct type *type, const gdb_byte *valaddr, CORE_ADDR address) { @@ -713,7 +713,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c struct type *tag_type; if (find_struct_field ("_tag", type, 0, &tag_type, &tag_byte_offset, -@@ -7178,7 +7180,7 @@ ada_in_variant (LONGEST val, struct type *type, int field_num) +@@ -7150,7 +7152,7 @@ ada_in_variant (LONGEST val, struct type *type, int field_num) only in that it can handle packed values of arbitrary type. */ static struct value * @@ -722,7 +722,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c struct type *arg_type) { struct type *type; -@@ -7190,7 +7192,7 @@ ada_value_primitive_field (struct value *arg1, int offset, int fieldno, +@@ -7162,7 +7164,7 @@ ada_value_primitive_field (struct value *arg1, int offset, int fieldno, if (TYPE_FIELD_BITSIZE (arg_type, fieldno) != 0) { @@ -731,7 +731,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c int bit_size = TYPE_FIELD_BITSIZE (arg_type, fieldno); return ada_value_primitive_packed_val (arg1, value_contents (arg1), -@@ -7267,9 +7269,9 @@ ada_value_primitive_field (struct value *arg1, int offset, int fieldno, +@@ -7239,9 +7241,9 @@ ada_value_primitive_field (struct value *arg1, int offset, int fieldno, Returns 1 if found, 0 otherwise. */ static int @@ -743,7 +743,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c int *index_p) { int i; -@@ -7288,8 +7290,8 @@ find_struct_field (const char *name, struct type *type, int offset, +@@ -7260,8 +7262,8 @@ find_struct_field (const char *name, struct type *type, int offset, for (i = 0; i < TYPE_NFIELDS (type); i += 1) { @@ -754,7 +754,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c const char *t_field_name = TYPE_FIELD_NAME (type, i); if (t_field_name == NULL) -@@ -7391,7 +7393,7 @@ num_visible_fields (struct type *type) +@@ -7363,7 +7365,7 @@ num_visible_fields (struct type *type) long explanation in find_struct_field's function documentation. */ static struct value * @@ -763,7 +763,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c struct type *type) { int i; -@@ -7439,7 +7441,7 @@ ada_search_struct_field (const char *name, struct value *arg, int offset, +@@ -7411,7 +7413,7 @@ ada_search_struct_field (const char *name, struct value *arg, int offset, int j; struct type *field_type = ada_check_typedef (TYPE_FIELD_TYPE (type, i)); @@ -772,7 +772,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c for (j = 0; j < TYPE_NFIELDS (field_type); j += 1) { -@@ -7471,8 +7473,8 @@ ada_search_struct_field (const char *name, struct value *arg, int offset, +@@ -7443,8 +7445,8 @@ ada_search_struct_field (const char *name, struct value *arg, int offset, return NULL; } @@ -783,7 +783,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c /* Return field #INDEX in ARG, where the index is that returned by -@@ -7481,7 +7483,7 @@ static struct value *ada_index_struct_field_1 (int *, struct value *, +@@ -7453,7 +7455,7 @@ static struct value *ada_index_struct_field_1 (int *, struct value *, * If found, return value, else return NULL. */ static struct value * @@ -792,7 +792,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c struct type *type) { return ada_index_struct_field_1 (&index, arg, offset, type); -@@ -7493,7 +7495,7 @@ ada_index_struct_field (int index, struct value *arg, int offset, +@@ -7465,7 +7467,7 @@ ada_index_struct_field (int index, struct value *arg, int offset, * *INDEX_P. */ static struct value * @@ -801,7 +801,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c struct type *type) { int i; -@@ -7583,7 +7585,8 @@ ada_value_struct_elt (struct value *arg, const char *name, int no_err) +@@ -7555,7 +7557,8 @@ ada_value_struct_elt (struct value *arg, const char *name, int no_err) v = ada_search_struct_field (name, arg, 0, t); else { @@ -811,7 +811,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c struct type *field_type; CORE_ADDR address; -@@ -7927,8 +7930,8 @@ ada_coerce_ref (struct value *val0) +@@ -7899,8 +7902,8 @@ ada_coerce_ref (struct value *val0) /* Return OFF rounded upward if necessary to a multiple of ALIGNMENT (a power of 2). */ @@ -822,7 +822,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c { return (off + alignment - 1) & ~(alignment - 1); } -@@ -8322,10 +8325,9 @@ ada_template_to_fixed_record_type_1 (struct type *type, +@@ -8290,10 +8293,9 @@ ada_template_to_fixed_record_type_1 (struct type *type, struct value *mark = value_mark (); struct value *dval; struct type *rtype; @@ -835,7 +835,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c int f; /* Compute the number of fields in this record type that are going -@@ -8403,7 +8405,7 @@ ada_template_to_fixed_record_type_1 (struct type *type, +@@ -8370,7 +8372,7 @@ ada_template_to_fixed_record_type_1 (struct type *type, that follow this one. */ if (ada_is_aligner_type (field_type)) { @@ -844,7 +844,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c field_valaddr = cond_offset_host (field_valaddr, field_offset); field_address = cond_offset_target (field_address, field_offset); -@@ -8539,11 +8541,11 @@ ada_template_to_fixed_record_type_1 (struct type *type, +@@ -8506,11 +8508,11 @@ ada_template_to_fixed_record_type_1 (struct type *type, if (TYPE_LENGTH (type) <= 0) { if (TYPE_NAME (rtype)) @@ -860,7 +860,7 @@ diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c } else { -@@ -9009,7 +9011,8 @@ to_fixed_array_type (struct type *type0, struct value *dval, +@@ -8974,7 +8976,8 @@ to_fixed_array_type (struct type *type0, struct value *dval, type was a regular (non-packed) array type. As a result, the bitsize of the array elements needs to be set again, and the array length needs to be recomputed based on that bitsize. */ @@ -891,7 +891,7 @@ diff --git a/gdb/ada-lang.h b/gdb/ada-lang.h const struct value_print_options *); struct value *ada_convert_actual (struct value *actual, -@@ -262,7 +262,7 @@ extern int ada_is_constrained_packed_array_type (struct type *); +@@ -263,7 +263,7 @@ extern int ada_is_constrained_packed_array_type (struct type *); extern struct value *ada_value_primitive_packed_val (struct value *, const gdb_byte *, @@ -1074,7 +1074,7 @@ diff --git a/gdb/ada-valprint.c b/gdb/ada-valprint.c diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c --- a/gdb/amd64-tdep.c +++ b/gdb/amd64-tdep.c -@@ -729,7 +729,7 @@ amd64_return_value (struct gdbarch *gdbarch, struct value *function, +@@ -727,7 +727,7 @@ amd64_return_value (struct gdbarch *gdbarch, struct value *function, gdb_byte *readbuf, const gdb_byte *writebuf) { enum amd64_reg_class theclass[2]; @@ -1083,20 +1083,17 @@ diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c static int integer_regnum[] = { AMD64_RAX_REGNUM, AMD64_RDX_REGNUM }; static int sse_regnum[] = { AMD64_XMM0_REGNUM, AMD64_XMM1_REGNUM }; int integer_reg = 0; -@@ -845,11 +845,13 @@ amd64_return_value (struct gdbarch *gdbarch, struct value *function, - +@@ -844,10 +844,10 @@ amd64_return_value (struct gdbarch *gdbarch, struct value *function, gdb_assert (regnum != -1); -+ LONGEST nlen = len < 8 ? len : 8; -+ if (readbuf) -- regcache_raw_read_part (regcache, regnum, offset, std::min (len, 8), -+ regcache_raw_read_part (regcache, regnum, offset, nlen, - readbuf + i * 8); +- regcache->raw_read_part (regnum, offset, std::min (len, 8), ++ regcache->raw_read_part (regnum, offset, std::min (len, (LONGEST) 8), + readbuf + i * 8); if (writebuf) -- regcache_raw_write_part (regcache, regnum, offset, std::min (len, 8), -+ regcache_raw_write_part (regcache, regnum, offset, nlen, - writebuf + i * 8); +- regcache->raw_write_part (regnum, offset, std::min (len, 8), ++ regcache->raw_write_part (regnum, offset, std::min (len, (LONGEST) 8), + writebuf + i * 8); } diff --git a/gdb/annotate.c b/gdb/annotate.c @@ -1169,7 +1166,7 @@ diff --git a/gdb/arch-utils.h b/gdb/arch-utils.h diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c --- a/gdb/arm-linux-nat.c +++ b/gdb/arm-linux-nat.c -@@ -1104,7 +1104,7 @@ arm_linux_nat_target::remove_hw_breakpoint (struct gdbarch *gdbarch, +@@ -1098,7 +1098,7 @@ arm_linux_nat_target::remove_hw_breakpoint (struct gdbarch *gdbarch, /* Are we able to use a hardware watchpoint for the LEN bytes starting at ADDR? */ int @@ -1316,7 +1313,7 @@ diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c } return 0; } -@@ -6814,7 +6814,7 @@ breakpoint_address_match (const address_space *aspace1, CORE_ADDR addr1, +@@ -6809,7 +6809,7 @@ breakpoint_address_match (const address_space *aspace1, CORE_ADDR addr1, static int breakpoint_address_match_range (const address_space *aspace1, CORE_ADDR addr1, @@ -1325,7 +1322,7 @@ diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c CORE_ADDR addr2) { return ((gdbarch_has_global_breakpoints (target_gdbarch ()) -@@ -10906,7 +10906,7 @@ can_use_hardware_watchpoint (const std::vector &vals) +@@ -10896,7 +10896,7 @@ can_use_hardware_watchpoint (const std::vector &vals) && TYPE_CODE (vtype) != TYPE_CODE_ARRAY)) { CORE_ADDR vaddr = value_address (v); @@ -1388,7 +1385,7 @@ diff --git a/gdb/c-lang.c b/gdb/c-lang.c diff --git a/gdb/c-lang.h b/gdb/c-lang.h --- a/gdb/c-lang.h +++ b/gdb/c-lang.h -@@ -77,7 +77,7 @@ extern void c_print_typedef (struct type *, +@@ -84,7 +84,7 @@ extern void c_print_typedef (struct type *, struct ui_file *); extern void c_val_print (struct type *, @@ -1397,7 +1394,7 @@ diff --git a/gdb/c-lang.h b/gdb/c-lang.h struct ui_file *, int, struct value *, const struct value_print_options *); -@@ -97,7 +97,7 @@ extern void c_printchar (int, struct type *, struct ui_file *); +@@ -104,7 +104,7 @@ extern void c_printchar (int, struct type *, struct ui_file *); extern void c_printstr (struct ui_file * stream, struct type *elttype, const gdb_byte *string, @@ -1409,7 +1406,7 @@ diff --git a/gdb/c-lang.h b/gdb/c-lang.h diff --git a/gdb/c-typeprint.c b/gdb/c-typeprint.c --- a/gdb/c-typeprint.c +++ b/gdb/c-typeprint.c -@@ -934,7 +934,8 @@ c_print_type_union_field_offset (struct type *type, unsigned int field_idx, +@@ -968,7 +968,8 @@ c_print_type_union_field_offset (struct type *type, unsigned int field_idx, { struct type *ftype = check_typedef (TYPE_FIELD_TYPE (type, field_idx)); @@ -1419,7 +1416,7 @@ diff --git a/gdb/c-typeprint.c b/gdb/c-typeprint.c } /* Helper function for ptype/o implementation that prints information -@@ -1530,8 +1531,8 @@ c_type_print_base_struct_union (struct type *type, struct ui_file *stream, +@@ -1568,8 +1569,8 @@ c_type_print_base_struct_union (struct type *type, struct ui_file *stream, print_spaces_filtered_with_print_options (level + 4, stream, flags); @@ -1679,7 +1676,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c } static void -@@ -14941,8 +14941,8 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die, +@@ -14940,8 +14940,8 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die, object, and then subtract off the number of bits of the field itself. The result is the bit offset of the LSB of the field. */ @@ -1894,7 +1891,7 @@ diff --git a/gdb/frame.h b/gdb/frame.h diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c -@@ -1795,7 +1795,7 @@ set_gdbarch_wchar_signed (struct gdbarch *gdbarch, +@@ -1794,7 +1794,7 @@ set_gdbarch_wchar_signed (struct gdbarch *gdbarch, } const struct floatformat ** @@ -1932,7 +1929,7 @@ diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c -@@ -2925,7 +2925,7 @@ floatformat_from_type (const struct type *type) +@@ -2906,7 +2906,7 @@ floatformat_from_type (const struct type *type) least as long as OBJFILE. */ struct type * @@ -1941,7 +1938,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c const char *name) { struct type *type; -@@ -3379,8 +3379,8 @@ is_public_ancestor (struct type *base, struct type *dclass) +@@ -3360,8 +3360,8 @@ is_public_ancestor (struct type *base, struct type *dclass) static int is_unique_ancestor_worker (struct type *base, struct type *dclass, @@ -1952,7 +1949,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c CORE_ADDR address, struct value *val) { int i, count = 0; -@@ -3391,7 +3391,7 @@ is_unique_ancestor_worker (struct type *base, struct type *dclass, +@@ -3372,7 +3372,7 @@ is_unique_ancestor_worker (struct type *base, struct type *dclass, for (i = 0; i < TYPE_N_BASECLASSES (dclass) && count < 2; ++i) { struct type *iter; @@ -1961,7 +1958,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c iter = check_typedef (TYPE_BASECLASS (dclass, i)); -@@ -3432,7 +3432,7 @@ is_unique_ancestor_worker (struct type *base, struct type *dclass, +@@ -3413,7 +3413,7 @@ is_unique_ancestor_worker (struct type *base, struct type *dclass, int is_unique_ancestor (struct type *base, struct value *val) { @@ -1970,7 +1967,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c return is_unique_ancestor_worker (base, value_type (val), &offset, value_contents_for_printing (val), -@@ -4677,7 +4677,7 @@ recursive_dump_type (struct type *type, int spaces) +@@ -4642,7 +4642,7 @@ recursive_dump_type (struct type *type, int spaces) break; } puts_filtered ("\n"); @@ -1979,7 +1976,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c if (TYPE_OBJFILE_OWNED (type)) { printfi_filtered (spaces, "objfile "); -@@ -5122,7 +5122,7 @@ copy_type (const struct type *type) +@@ -5085,7 +5085,7 @@ copy_type (const struct type *type) struct type * arch_type (struct gdbarch *gdbarch, @@ -1991,7 +1988,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 -@@ -876,7 +876,7 @@ struct type +@@ -862,7 +862,7 @@ struct type type_length_units function should be used in order to get the length expressed in target addressable memory units. */ @@ -2000,7 +1997,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h /* * Core type, shared by a group of qualified types. */ -@@ -1798,7 +1798,7 @@ extern unsigned int type_length_units (struct type *type); +@@ -1783,7 +1783,7 @@ extern unsigned int type_length_units (struct type *type); /* * Helper function to construct objfile-owned types. */ @@ -2009,7 +2006,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h const char *); extern struct type *init_integer_type (struct objfile *, int, int, const char *); -@@ -1815,7 +1815,7 @@ extern struct type *init_pointer_type (struct objfile *, int, const char *, +@@ -1800,7 +1800,7 @@ extern struct type *init_pointer_type (struct objfile *, int, const char *, struct type *); /* Helper functions to construct architecture-owned types. */ @@ -2151,7 +2148,7 @@ diff --git a/gdb/go-valprint.c b/gdb/go-valprint.c diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c -@@ -8177,7 +8177,7 @@ i386_fast_tracepoint_valid_at (struct gdbarch *gdbarch, CORE_ADDR addr, +@@ -8153,7 +8153,7 @@ i386_fast_tracepoint_valid_at (struct gdbarch *gdbarch, CORE_ADDR addr, const struct floatformat ** i386_floatformat_for_type (struct gdbarch *gdbarch, @@ -2606,7 +2603,7 @@ diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c --- a/gdb/ppc-linux-nat.c +++ b/gdb/ppc-linux-nat.c -@@ -1313,7 +1313,7 @@ ppc_linux_nat_target::can_use_hw_breakpoint (enum bptype type, int cnt, int ot) +@@ -1308,7 +1308,7 @@ ppc_linux_nat_target::can_use_hw_breakpoint (enum bptype type, int cnt, int ot) } int @@ -2663,7 +2660,7 @@ diff --git a/gdb/procfs.c b/gdb/procfs.c diff --git a/gdb/regcache.c b/gdb/regcache.c --- a/gdb/regcache.c +++ b/gdb/regcache.c -@@ -846,7 +846,7 @@ regcache::cooked_write (int regnum, const gdb_byte *buf) +@@ -781,7 +781,7 @@ regcache::cooked_write (int regnum, const gdb_byte *buf) operation. */ enum register_status @@ -2672,7 +2669,7 @@ diff --git a/gdb/regcache.c b/gdb/regcache.c bool is_raw) { struct gdbarch *gdbarch = arch (); -@@ -875,7 +875,7 @@ readable_regcache::read_part (int regnum, int offset, int len, void *in, +@@ -810,7 +810,7 @@ readable_regcache::read_part (int regnum, int offset, int len, void *in, } enum register_status @@ -2681,14 +2678,7 @@ diff --git a/gdb/regcache.c b/gdb/regcache.c const void *out, bool is_raw) { struct gdbarch *gdbarch = arch (); -@@ -913,13 +913,14 @@ regcache::write_part (int regnum, int offset, int len, - - enum register_status - regcache_raw_read_part (struct regcache *regcache, int regnum, -- int offset, int len, gdb_byte *buf) -+ int offset, LONGEST len, gdb_byte *buf) - { - return regcache->raw_read_part (regnum, offset, len, buf); +@@ -847,7 +847,8 @@ regcache::write_part (int regnum, int offset, int len, } enum register_status @@ -2698,15 +2688,8 @@ diff --git a/gdb/regcache.c b/gdb/regcache.c { assert_regnum (regnum); return read_part (regnum, offset, len, buf, true); -@@ -927,13 +928,13 @@ readable_regcache::raw_read_part (int regnum, int offset, int len, gdb_byte *buf - - void - regcache_raw_write_part (struct regcache *regcache, int regnum, -- int offset, int len, const gdb_byte *buf) -+ int offset, LONGEST len, const gdb_byte *buf) - { - regcache->raw_write_part (regnum, offset, len, buf); - } +@@ -856,7 +857,7 @@ readable_regcache::raw_read_part (int regnum, int offset, int len, gdb_byte *buf + /* See regcache.h. */ void -regcache::raw_write_part (int regnum, int offset, int len, @@ -2714,31 +2697,16 @@ diff --git a/gdb/regcache.c b/gdb/regcache.c const gdb_byte *buf) { assert_regnum (regnum); -@@ -942,14 +943,14 @@ regcache::raw_write_part (int regnum, int offset, int len, - - enum register_status - regcache_cooked_read_part (struct regcache *regcache, int regnum, -- int offset, int len, gdb_byte *buf) -+ LONGEST offset, LONGEST len, gdb_byte *buf) - { - return regcache->cooked_read_part (regnum, offset, len, buf); +@@ -864,7 +865,7 @@ regcache::raw_write_part (int regnum, int offset, int len, } - enum register_status -readable_regcache::cooked_read_part (int regnum, int offset, int len, +readable_regcache::cooked_read_part (int regnum, LONGEST offset, LONGEST len, gdb_byte *buf) { gdb_assert (regnum >= 0 && regnum < m_descr->nr_cooked_registers); -@@ -958,13 +959,13 @@ readable_regcache::cooked_read_part (int regnum, int offset, int len, - - void - regcache_cooked_write_part (struct regcache *regcache, int regnum, -- int offset, int len, const gdb_byte *buf) -+ LONGEST offset, LONGEST len, const gdb_byte *buf) - { - regcache->cooked_write_part (regnum, offset, len, buf); +@@ -872,7 +873,7 @@ readable_regcache::cooked_read_part (int regnum, int offset, int len, } void @@ -2750,53 +2718,28 @@ diff --git a/gdb/regcache.c b/gdb/regcache.c diff --git a/gdb/regcache.h b/gdb/regcache.h --- a/gdb/regcache.h +++ b/gdb/regcache.h -@@ -74,9 +74,9 @@ extern LONGEST regcache_raw_get_signed (struct regcache *regcache, - - extern enum register_status - regcache_raw_read_part (struct regcache *regcache, int regnum, -- int offset, int len, gdb_byte *buf); -+ int offset, LONGEST len, gdb_byte *buf); - void regcache_raw_write_part (struct regcache *regcache, int regnum, -- int offset, int len, const gdb_byte *buf); -+ int offset, LONGEST len, const gdb_byte *buf); - - void regcache_invalidate (struct regcache *regcache, int regnum); - -@@ -113,10 +113,11 @@ extern void regcache_cooked_write_unsigned (struct regcache *regcache, - write style operations. */ - - enum register_status regcache_cooked_read_part (struct regcache *regcache, -- int regnum, int offset, -- int len, gdb_byte *buf); -+ int regnum, LONGEST offset, -+ LONGEST len, gdb_byte *buf); - void regcache_cooked_write_part (struct regcache *regcache, int regnum, -- int offset, int len, const gdb_byte *buf); -+ LONGEST offset, LONGEST len, -+ const gdb_byte *buf); - - /* Special routines to read/write the PC. */ - -@@ -259,8 +260,8 @@ public: - template> +@@ -200,8 +200,8 @@ public: enum register_status raw_read (int regnum, T *val); + /* Partial transfer of raw registers. Return the status of the register. */ - enum register_status raw_read_part (int regnum, int offset, int len, - gdb_byte *buf); + enum register_status raw_read_part (int regnum, int offset, + LONGEST len, gdb_byte *buf); + /* Make certain that the register REGNUM is up-to-date. */ virtual void raw_update (int regnum) = 0; - -@@ -268,14 +269,14 @@ public: - template> +@@ -213,16 +213,16 @@ public: enum register_status cooked_read (int regnum, T *val); + /* Partial transfer of a cooked register. */ - enum register_status cooked_read_part (int regnum, int offset, int len, - gdb_byte *buf); + enum register_status cooked_read_part (int regnum, LONGEST offset, + LONGEST len, gdb_byte *buf); + /* Read register REGNUM from the regcache and return a new value. This + will call mark_value_bytes_unavailable as appropriate. */ struct value *cooked_read_value (int regnum); protected: @@ -2807,20 +2750,22 @@ diff --git a/gdb/regcache.h b/gdb/regcache.h }; /* Buffer of registers, can be read and written. */ -@@ -345,9 +346,10 @@ public: - void raw_collect_integer (int regnum, gdb_byte *addr, int addr_len, - bool is_signed) const; +@@ -300,11 +300,12 @@ public: + /* Partial transfer of raw registers. Perform read, modify, write style + operations. */ - void raw_write_part (int regnum, int offset, int len, const gdb_byte *buf); + void raw_write_part (int regnum, int offset, LONGEST len, + const gdb_byte *buf); + /* Partial transfer of a cooked register. Perform read, modify, write style + operations. */ - void cooked_write_part (int regnum, int offset, int len, + void cooked_write_part (int regnum, LONGEST offset, LONGEST len, const gdb_byte *buf); void supply_regset (const struct regset *regset, -@@ -377,13 +379,12 @@ protected: +@@ -338,13 +339,12 @@ protected: static std::forward_list current_regcache; private: @@ -2847,7 +2792,7 @@ diff --git a/gdb/remote.c b/gdb/remote.c int insert_watchpoint (CORE_ADDR, int, enum target_hw_bp_type, struct expression *) override; -@@ -10552,7 +10552,7 @@ int remote_hw_watchpoint_length_limit = -1; +@@ -10551,7 +10551,7 @@ int remote_hw_watchpoint_length_limit = -1; int remote_hw_breakpoint_limit = -1; int @@ -3167,7 +3112,7 @@ diff --git a/gdb/tracepoint.h b/gdb/tracepoint.h diff --git a/gdb/valarith.c b/gdb/valarith.c --- a/gdb/valarith.c +++ b/gdb/valarith.c -@@ -184,7 +184,7 @@ value_subscript (struct value *array, LONGEST index) +@@ -182,7 +182,7 @@ value_subscript (struct value *array, LONGEST index) to doubles, but no longer does. */ struct value * @@ -3176,7 +3121,7 @@ diff --git a/gdb/valarith.c b/gdb/valarith.c { struct type *array_type = check_typedef (value_type (array)); struct type *elt_type = check_typedef (TYPE_TARGET_TYPE (array_type)); -@@ -661,7 +661,7 @@ value_concat (struct value *arg1, struct value *arg2) +@@ -659,7 +659,7 @@ value_concat (struct value *arg1, struct value *arg2) struct value *inval1; struct value *inval2; struct value *outval = NULL; @@ -3185,7 +3130,7 @@ diff --git a/gdb/valarith.c b/gdb/valarith.c int count, idx; char inchar; struct type *type1 = check_typedef (value_type (arg1)); -@@ -1421,7 +1421,7 @@ value_binop (struct value *arg1, struct value *arg2, enum exp_opcode op) +@@ -1419,7 +1419,7 @@ value_binop (struct value *arg1, struct value *arg2, enum exp_opcode op) int value_logical_not (struct value *arg1) { @@ -3194,7 +3139,7 @@ diff --git a/gdb/valarith.c b/gdb/valarith.c const gdb_byte *p; struct type *type1; -@@ -1449,11 +1449,11 @@ value_logical_not (struct value *arg1) +@@ -1447,11 +1447,11 @@ value_logical_not (struct value *arg1) static int value_strcmp (struct value *arg1, struct value *arg2) { diff --git a/gdb-rhbz795424-bitpos-21of25.patch b/gdb-rhbz795424-bitpos-21of25.patch index 3737747..ea4a17c 100644 --- a/gdb-rhbz795424-bitpos-21of25.patch +++ b/gdb-rhbz795424-bitpos-21of25.patch @@ -113,7 +113,7 @@ diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c diff --git a/gdb/utils.c b/gdb/utils.c --- a/gdb/utils.c +++ b/gdb/utils.c -@@ -2816,6 +2816,17 @@ string_to_core_addr (const char *my_string) +@@ -2817,6 +2817,17 @@ string_to_core_addr (const char *my_string) return addr; } diff --git a/gdb-rhbz795424-bitpos-22of25.patch b/gdb-rhbz795424-bitpos-22of25.patch index 98a8613..f5c1398 100644 --- a/gdb-rhbz795424-bitpos-22of25.patch +++ b/gdb-rhbz795424-bitpos-22of25.patch @@ -108,7 +108,7 @@ Content-Disposition: attachment; filename=bitpos-wp.patch diff --git a/gdb/aarch64-linux-nat.c b/gdb/aarch64-linux-nat.c --- a/gdb/aarch64-linux-nat.c +++ b/gdb/aarch64-linux-nat.c -@@ -62,14 +62,14 @@ public: +@@ -63,14 +63,14 @@ public: int can_use_hw_breakpoint (enum bptype, int, int) override; int insert_hw_breakpoint (struct gdbarch *, struct bp_target_info *) override; int remove_hw_breakpoint (struct gdbarch *, struct bp_target_info *) override; @@ -125,7 +125,7 @@ diff --git a/gdb/aarch64-linux-nat.c b/gdb/aarch64-linux-nat.c int can_do_single_step () override; -@@ -822,7 +822,8 @@ aarch64_linux_nat_target::stopped_by_watchpoint () +@@ -819,7 +819,8 @@ aarch64_linux_nat_target::stopped_by_watchpoint () bool aarch64_linux_nat_target::watchpoint_addr_within_range (CORE_ADDR addr, @@ -156,7 +156,7 @@ diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c const struct target_desc *read_description () override; -@@ -1213,7 +1213,7 @@ arm_linux_nat_target::stopped_by_watchpoint () +@@ -1207,7 +1207,7 @@ arm_linux_nat_target::stopped_by_watchpoint () bool arm_linux_nat_target::watchpoint_addr_within_range (CORE_ADDR addr, CORE_ADDR start, @@ -301,7 +301,7 @@ diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c override; int masked_watch_num_registers (CORE_ADDR, CORE_ADDR) override; -@@ -1664,11 +1664,11 @@ can_use_watchpoint_cond_accel (void) +@@ -1659,11 +1659,11 @@ can_use_watchpoint_cond_accel (void) CONDITION_VALUE will hold the value which should be put in the DVC register. */ static void @@ -316,7 +316,7 @@ diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c CORE_ADDR addr_end_data, addr_end_dvc; /* The DVC register compares bytes within fixed-length windows which -@@ -1756,7 +1756,7 @@ num_memory_accesses (const std::vector &chain) +@@ -1751,7 +1751,7 @@ num_memory_accesses (const std::vector &chain) of the constant. */ static int check_condition (CORE_ADDR watch_addr, struct expression *cond, @@ -325,7 +325,7 @@ diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c { int pc = 1, num_accesses_left, num_accesses_right; struct value *left_val, *right_val; -@@ -1807,7 +1807,8 @@ check_condition (CORE_ADDR watch_addr, struct expression *cond, +@@ -1802,7 +1802,8 @@ check_condition (CORE_ADDR watch_addr, struct expression *cond, the condition expression, thus only triggering the watchpoint when it is true. */ bool @@ -335,7 +335,7 @@ diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c int rw, struct expression *cond) { -@@ -1825,7 +1826,7 @@ ppc_linux_nat_target::can_accel_watchpoint_condition (CORE_ADDR addr, int len, +@@ -1820,7 +1821,7 @@ ppc_linux_nat_target::can_accel_watchpoint_condition (CORE_ADDR addr, int len, static void create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr, @@ -344,7 +344,7 @@ diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c struct expression *cond, int insert) { if (len == 1 -@@ -2091,7 +2092,7 @@ ppc_linux_nat_target::stopped_by_watchpoint () +@@ -2086,7 +2087,7 @@ ppc_linux_nat_target::stopped_by_watchpoint () bool ppc_linux_nat_target::watchpoint_addr_within_range (CORE_ADDR addr, CORE_ADDR start, @@ -386,7 +386,7 @@ diff --git a/gdb/remote.c b/gdb/remote.c int can_use_hw_breakpoint (enum bptype, int, int) override; -@@ -10481,7 +10481,7 @@ remote_target::insert_watchpoint (CORE_ADDR addr, int len, +@@ -10480,7 +10480,7 @@ remote_target::insert_watchpoint (CORE_ADDR addr, int len, p = strchr (rs->buf, '\0'); addr = remote_address_masked (addr); p += hexnumstr (p, (ULONGEST) addr); @@ -395,7 +395,7 @@ diff --git a/gdb/remote.c b/gdb/remote.c putpkt (rs->buf); getpkt (&rs->buf, &rs->buf_size, 0); -@@ -10501,7 +10501,7 @@ remote_target::insert_watchpoint (CORE_ADDR addr, int len, +@@ -10500,7 +10500,7 @@ remote_target::insert_watchpoint (CORE_ADDR addr, int len, bool remote_target::watchpoint_addr_within_range (CORE_ADDR addr, @@ -404,7 +404,7 @@ diff --git a/gdb/remote.c b/gdb/remote.c { CORE_ADDR diff = remote_address_masked (addr - start); -@@ -10530,7 +10530,7 @@ remote_target::remove_watchpoint (CORE_ADDR addr, int len, +@@ -10529,7 +10529,7 @@ remote_target::remove_watchpoint (CORE_ADDR addr, int len, p = strchr (rs->buf, '\0'); addr = remote_address_masked (addr); p += hexnumstr (p, (ULONGEST) addr); diff --git a/gdb-rhbz795424-bitpos-23of25.patch b/gdb-rhbz795424-bitpos-23of25.patch index da0641a..1012677 100644 --- a/gdb-rhbz795424-bitpos-23of25.patch +++ b/gdb-rhbz795424-bitpos-23of25.patch @@ -194,7 +194,7 @@ diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c --- a/gdb/amd64-tdep.c +++ b/gdb/amd64-tdep.c -@@ -882,8 +882,8 @@ amd64_push_arguments (struct regcache *regcache, int nargs, +@@ -878,8 +878,8 @@ amd64_push_arguments (struct regcache *regcache, int nargs, }; struct value **stack_args = XALLOCAVEC (struct value *, nargs); int num_stack_args = 0; @@ -205,7 +205,7 @@ diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c int integer_reg = 0; int sse_reg = 0; int i; -@@ -895,7 +895,7 @@ amd64_push_arguments (struct regcache *regcache, int nargs, +@@ -891,7 +891,7 @@ amd64_push_arguments (struct regcache *regcache, int nargs, for (i = 0; i < nargs; i++) { struct type *type = value_type (args[i]); @@ -214,13 +214,13 @@ diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c enum amd64_reg_class theclass[2]; int needed_integer_regs = 0; int needed_sse_regs = 0; -@@ -959,7 +959,7 @@ amd64_push_arguments (struct regcache *regcache, int nargs, +@@ -955,7 +955,7 @@ amd64_push_arguments (struct regcache *regcache, int nargs, gdb_assert (regnum != -1); memset (buf, 0, sizeof buf); - memcpy (buf, valbuf + j * 8, std::min (len, 8)); + memcpy (buf, valbuf + j * 8, std::min (len, (LONGEST) 8)); - regcache_raw_write_part (regcache, regnum, offset, 8, buf); + regcache->raw_write_part (regnum, offset, 8, buf); } } diff --git a/gdb/amd64-windows-tdep.c b/gdb/amd64-windows-tdep.c @@ -439,7 +439,7 @@ diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c --- a/gdb/hppa-tdep.c +++ b/gdb/hppa-tdep.c -@@ -986,7 +986,7 @@ hppa64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, +@@ -984,7 +984,7 @@ hppa64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, { struct value *arg = args[i]; struct type *type = value_type (arg); @@ -448,7 +448,7 @@ diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c const bfd_byte *valbuf; bfd_byte fptrbuf[8]; int regnum; -@@ -1181,7 +1181,7 @@ hppa64_return_value (struct gdbarch *gdbarch, struct value *function, +@@ -1177,7 +1177,7 @@ hppa64_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf) { @@ -508,7 +508,7 @@ diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c gdb_assert (code == TYPE_CODE_STRUCT || code == TYPE_CODE_UNION -@@ -3727,7 +3727,7 @@ static int +@@ -3703,7 +3703,7 @@ static int i386_convert_register_p (struct gdbarch *gdbarch, int regnum, struct type *type) { @@ -517,7 +517,7 @@ diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c /* Values may be spread across multiple registers. Most debugging formats aren't expressive enough to specify the locations, so -@@ -3760,7 +3760,7 @@ i386_register_to_value (struct frame_info *frame, int regnum, +@@ -3736,7 +3736,7 @@ i386_register_to_value (struct frame_info *frame, int regnum, int *optimizedp, int *unavailablep) { struct gdbarch *gdbarch = get_frame_arch (frame); @@ -526,7 +526,7 @@ diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c if (i386_fp_regnum_p (gdbarch, regnum)) return i387_register_to_value (frame, regnum, type, to, -@@ -3796,7 +3796,7 @@ static void +@@ -3772,7 +3772,7 @@ static void i386_value_to_register (struct frame_info *frame, int regnum, struct type *type, const gdb_byte *from) { @@ -565,7 +565,7 @@ diff --git a/gdb/m32r-tdep.c b/gdb/m32r-tdep.c diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c --- a/gdb/m68k-tdep.c +++ b/gdb/m68k-tdep.c -@@ -373,7 +373,7 @@ m68k_reg_struct_return_p (struct gdbarch *gdbarch, struct type *type) +@@ -372,7 +372,7 @@ m68k_reg_struct_return_p (struct gdbarch *gdbarch, struct type *type) { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); enum type_code code = TYPE_CODE (type); @@ -574,7 +574,7 @@ diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c gdb_assert (code == TYPE_CODE_STRUCT || code == TYPE_CODE_UNION || code == TYPE_CODE_COMPLEX); -@@ -505,9 +505,9 @@ m68k_push_dummy_call (struct gdbarch *gdbarch, struct value *function, +@@ -504,9 +504,9 @@ m68k_push_dummy_call (struct gdbarch *gdbarch, struct value *function, for (i = nargs - 1; i >= 0; i--) { struct type *value_type = value_enclosing_type (args[i]); @@ -590,7 +590,7 @@ diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c diff --git a/gdb/mep-tdep.c b/gdb/mep-tdep.c --- a/gdb/mep-tdep.c +++ b/gdb/mep-tdep.c -@@ -2241,7 +2241,7 @@ push_large_arguments (CORE_ADDR sp, int argc, struct value **argv, +@@ -2239,7 +2239,7 @@ push_large_arguments (CORE_ADDR sp, int argc, struct value **argv, for (i = 0; i < argc; i++) { @@ -622,7 +622,7 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c if (mips_debug && out != NULL) { int i; -@@ -4533,13 +4533,13 @@ mips_eabi_push_dummy_call (struct gdbarch *gdbarch, struct value *function, +@@ -4531,13 +4531,13 @@ mips_eabi_push_dummy_call (struct gdbarch *gdbarch, struct value *function, gdb_byte ref_valbuf[MAX_MIPS_ABI_REGSIZE]; struct value *arg = args[argnum]; struct type *arg_type = check_typedef (value_type (arg)); @@ -639,7 +639,7 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c /* The EABI passes structures that do not fit in a register by reference. */ -@@ -4809,7 +4809,7 @@ mips_eabi_return_value (struct gdbarch *gdbarch, struct value *function, +@@ -4807,7 +4807,7 @@ mips_eabi_return_value (struct gdbarch *gdbarch, struct value *function, static int mips_n32n64_fp_arg_chunk_p (struct gdbarch *gdbarch, struct type *arg_type, @@ -648,7 +648,7 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c { int i; -@@ -4824,7 +4824,7 @@ mips_n32n64_fp_arg_chunk_p (struct gdbarch *gdbarch, struct type *arg_type, +@@ -4822,7 +4822,7 @@ mips_n32n64_fp_arg_chunk_p (struct gdbarch *gdbarch, struct type *arg_type, for (i = 0; i < TYPE_NFIELDS (arg_type); i++) { @@ -657,7 +657,7 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c struct type *field_type; /* We're only looking at normal fields. */ -@@ -4866,7 +4866,7 @@ mips_n32n64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, +@@ -4864,7 +4864,7 @@ mips_n32n64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, int argreg; int float_argreg; int argnum; @@ -666,7 +666,7 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c int stack_offset = 0; enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); CORE_ADDR func_addr = find_function_addr (function, NULL); -@@ -5217,11 +5217,11 @@ mips_n32n64_return_value (struct gdbarch *gdbarch, struct value *function, +@@ -5215,11 +5215,11 @@ mips_n32n64_return_value (struct gdbarch *gdbarch, struct value *function, : MIPS_V0_REGNUM); field < TYPE_NFIELDS (type); field++, regnum += 2) { @@ -682,7 +682,7 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c if (TYPE_LENGTH (TYPE_FIELD_TYPE (type, field)) == 16) { /* A 16-byte long double field goes in two consecutive -@@ -5263,8 +5263,8 @@ mips_n32n64_return_value (struct gdbarch *gdbarch, struct value *function, +@@ -5261,8 +5261,8 @@ mips_n32n64_return_value (struct gdbarch *gdbarch, struct value *function, if (offset + xfer > TYPE_LENGTH (type)) xfer = TYPE_LENGTH (type) - offset; if (mips_debug) @@ -693,7 +693,7 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c mips_xfer_register (gdbarch, regcache, gdbarch_num_regs (gdbarch) + regnum, xfer, BFD_ENDIAN_UNKNOWN, readbuf, writebuf, -@@ -5322,7 +5322,7 @@ mips_o32_push_dummy_call (struct gdbarch *gdbarch, struct value *function, +@@ -5320,7 +5320,7 @@ mips_o32_push_dummy_call (struct gdbarch *gdbarch, struct value *function, int argreg; int float_argreg; int argnum; @@ -702,7 +702,7 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c int stack_offset = 0; enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); CORE_ADDR func_addr = find_function_addr (function, NULL); -@@ -5386,13 +5386,13 @@ mips_o32_push_dummy_call (struct gdbarch *gdbarch, struct value *function, +@@ -5384,13 +5384,13 @@ mips_o32_push_dummy_call (struct gdbarch *gdbarch, struct value *function, const gdb_byte *val; struct value *arg = args[argnum]; struct type *arg_type = check_typedef (value_type (arg)); @@ -719,7 +719,7 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c val = value_contents (arg); -@@ -5846,8 +5846,8 @@ mips_o64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, +@@ -5844,8 +5844,8 @@ mips_o64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, int argreg; int float_argreg; int argnum; @@ -730,7 +730,7 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); CORE_ADDR func_addr = find_function_addr (function, NULL); -@@ -5907,13 +5907,13 @@ mips_o64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, +@@ -5905,13 +5905,13 @@ mips_o64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, const gdb_byte *val; struct value *arg = args[argnum]; struct type *arg_type = check_typedef (value_type (arg)); @@ -750,7 +750,7 @@ diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c diff --git a/gdb/mn10300-tdep.c b/gdb/mn10300-tdep.c --- a/gdb/mn10300-tdep.c +++ b/gdb/mn10300-tdep.c -@@ -1198,7 +1198,7 @@ mn10300_push_dummy_call (struct gdbarch *gdbarch, +@@ -1197,7 +1197,7 @@ mn10300_push_dummy_call (struct gdbarch *gdbarch, enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); const int push_size = register_size (gdbarch, E_PC_REGNUM); int regs_used; @@ -792,7 +792,7 @@ diff --git a/gdb/ppc-sysv-tdep.c b/gdb/ppc-sysv-tdep.c const bfd_byte *val = value_contents (arg); if (TYPE_CODE (type) == TYPE_CODE_FLT && len <= 8 -@@ -1285,11 +1285,11 @@ struct ppc64_sysv_argpos +@@ -1246,11 +1246,11 @@ struct ppc64_sysv_argpos static void ppc64_sysv_abi_push_val (struct gdbarch *gdbarch, @@ -806,16 +806,16 @@ diff --git a/gdb/ppc-sysv-tdep.c b/gdb/ppc-sysv-tdep.c /* Enforce alignment of stack location, if requested. */ if (align > tdep->wordsize) -@@ -1327,7 +1327,7 @@ ppc64_sysv_abi_push_val (struct gdbarch *gdbarch, +@@ -1287,7 +1287,7 @@ ppc64_sysv_abi_push_val (struct gdbarch *gdbarch, + { if (argpos->regcache && argpos->greg <= 10) - regcache_cooked_write_part (argpos->regcache, - tdep->ppc_gp0_regnum + argpos->greg, -- offset, len, val); -+ offset, (LONGEST) len, val); + argpos->regcache->cooked_write_part +- (tdep->ppc_gp0_regnum + argpos->greg, offset, len, val); ++ (tdep->ppc_gp0_regnum + argpos->greg, offset, (LONGEST) len, val); argpos->greg++; } } -@@ -1386,7 +1386,7 @@ ppc64_sysv_abi_push_freg (struct gdbarch *gdbarch, +@@ -1346,7 +1346,7 @@ ppc64_sysv_abi_push_freg (struct gdbarch *gdbarch, if (argpos->regcache && argpos->freg <= 13) { int regnum = tdep->ppc_fp0_regnum + argpos->freg; @@ -824,7 +824,7 @@ diff --git a/gdb/ppc-sysv-tdep.c b/gdb/ppc-sysv-tdep.c if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG) offset = 8 - TYPE_LENGTH (type); -@@ -1836,7 +1836,7 @@ ppc64_sysv_abi_return_value_base (struct gdbarch *gdbarch, struct type *valtype, +@@ -1795,7 +1795,7 @@ ppc64_sysv_abi_return_value_base (struct gdbarch *gdbarch, struct type *valtype, && TYPE_CODE (valtype) == TYPE_CODE_DECFLOAT) { int regnum = tdep->ppc_fp0_regnum + 1 + index; @@ -833,7 +833,7 @@ diff --git a/gdb/ppc-sysv-tdep.c b/gdb/ppc-sysv-tdep.c if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG) offset = 8 - TYPE_LENGTH (valtype); -@@ -1912,7 +1912,7 @@ ppc64_sysv_abi_return_value_base (struct gdbarch *gdbarch, struct type *valtype, +@@ -1871,7 +1871,7 @@ ppc64_sysv_abi_return_value_base (struct gdbarch *gdbarch, struct type *valtype, && TYPE_CODE (valtype) == TYPE_CODE_ARRAY && TYPE_VECTOR (valtype)) { int regnum = tdep->ppc_gp0_regnum + 3 + index; @@ -842,7 +842,7 @@ diff --git a/gdb/ppc-sysv-tdep.c b/gdb/ppc-sysv-tdep.c if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG) offset = 8 - TYPE_LENGTH (valtype); -@@ -2020,7 +2020,8 @@ ppc64_sysv_abi_return_value (struct gdbarch *gdbarch, struct value *function, +@@ -1979,7 +1979,8 @@ ppc64_sysv_abi_return_value (struct gdbarch *gdbarch, struct value *function, && TYPE_LENGTH (TYPE_TARGET_TYPE (valtype)) == 1) { int regnum = tdep->ppc_gp0_regnum + 3; @@ -851,7 +851,7 @@ diff --git a/gdb/ppc-sysv-tdep.c b/gdb/ppc-sysv-tdep.c + = (register_size (gdbarch, regnum) - TYPE_LENGTH (valtype)); if (writebuf != NULL) - regcache_cooked_write_part (regcache, regnum, + regcache->cooked_write_part (regnum, offset, TYPE_LENGTH (valtype), diff --git a/gdb/rl78-tdep.c b/gdb/rl78-tdep.c --- a/gdb/rl78-tdep.c +++ b/gdb/rl78-tdep.c @@ -881,7 +881,7 @@ diff --git a/gdb/rs6000-aix-tdep.c b/gdb/rs6000-aix-tdep.c gdb_byte tmp_buffer[50]; int f_argno = 0; /* current floating point argno */ int wordsize = gdbarch_tdep (gdbarch)->wordsize; -@@ -309,7 +309,7 @@ ran_out_of_registers_for_arguments: +@@ -307,7 +307,7 @@ ran_out_of_registers_for_arguments: if ((argno < nargs) || argbytes) { @@ -1024,7 +1024,7 @@ diff --git a/gdb/spu-tdep.c b/gdb/spu-tdep.c diff --git a/gdb/tic6x-tdep.c b/gdb/tic6x-tdep.c --- a/gdb/tic6x-tdep.c +++ b/gdb/tic6x-tdep.c -@@ -883,7 +883,7 @@ tic6x_push_dummy_call (struct gdbarch *gdbarch, struct value *function, +@@ -881,7 +881,7 @@ tic6x_push_dummy_call (struct gdbarch *gdbarch, struct value *function, int argreg = 0; int argnum; int stack_offset = 4; @@ -1033,7 +1033,7 @@ diff --git a/gdb/tic6x-tdep.c b/gdb/tic6x-tdep.c CORE_ADDR func_addr = find_function_addr (function, NULL); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); struct type *func_type = value_type (function); -@@ -917,7 +917,7 @@ tic6x_push_dummy_call (struct gdbarch *gdbarch, struct value *function, +@@ -915,7 +915,7 @@ tic6x_push_dummy_call (struct gdbarch *gdbarch, struct value *function, /* Now make space on the stack for the args. */ for (argnum = 0; argnum < nargs; argnum++) { @@ -1042,7 +1042,7 @@ diff --git a/gdb/tic6x-tdep.c b/gdb/tic6x-tdep.c if (argnum >= 10 - argreg) references_offset += len; stack_offset += len; -@@ -936,7 +936,7 @@ tic6x_push_dummy_call (struct gdbarch *gdbarch, struct value *function, +@@ -934,7 +934,7 @@ tic6x_push_dummy_call (struct gdbarch *gdbarch, struct value *function, const gdb_byte *val; struct value *arg = args[argnum]; struct type *arg_type = check_typedef (value_type (arg)); @@ -1051,7 +1051,7 @@ diff --git a/gdb/tic6x-tdep.c b/gdb/tic6x-tdep.c enum type_code typecode = TYPE_CODE (arg_type); val = value_contents (arg); -@@ -1096,7 +1096,8 @@ tic6x_push_dummy_call (struct gdbarch *gdbarch, struct value *function, +@@ -1090,7 +1090,8 @@ tic6x_push_dummy_call (struct gdbarch *gdbarch, struct value *function, } else internal_error (__FILE__, __LINE__, @@ -1133,7 +1133,7 @@ diff --git a/gdb/xstormy16-tdep.c b/gdb/xstormy16-tdep.c diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c --- a/gdb/xtensa-tdep.c +++ b/gdb/xtensa-tdep.c -@@ -1627,8 +1627,7 @@ xtensa_store_return_value (struct type *type, +@@ -1626,8 +1626,7 @@ xtensa_store_return_value (struct type *type, if (len > (callsize > 8 ? 8 : 16)) internal_error (__FILE__, __LINE__, @@ -1143,7 +1143,7 @@ diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c areg = arreg_number (gdbarch, gdbarch_tdep (gdbarch)->a0_base + 2 + callsize, wb); -@@ -1702,18 +1701,18 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch, +@@ -1701,18 +1700,18 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch, { enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); int i; @@ -1165,7 +1165,7 @@ diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c int regno; /* regno if in register. */ } u; }; -@@ -1737,9 +1736,10 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch, +@@ -1736,9 +1735,10 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch, { struct value *arg = args[i]; struct type *arg_type = check_typedef (value_type (arg)); @@ -1179,7 +1179,7 @@ diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c switch (TYPE_CODE (arg_type)) { case TYPE_CODE_INT: -@@ -1809,8 +1809,8 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch, +@@ -1808,8 +1808,8 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch, info->align = TYPE_LENGTH (builtin_type (gdbarch)->builtin_long); break; } @@ -1189,7 +1189,7 @@ diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c /* Align size and onstack_size. */ size = (size + info->align - 1) & ~(info->align - 1); -@@ -1855,7 +1855,7 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch, +@@ -1854,7 +1854,7 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch, if (info->onstack) { @@ -1198,7 +1198,7 @@ diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c CORE_ADDR offset = sp + info->u.offset; /* Odd-sized structs are aligned to the lower side of a memory -@@ -1871,7 +1871,7 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch, +@@ -1870,7 +1870,7 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch, } else { diff --git a/gdb-rhbz795424-bitpos-25of25.patch b/gdb-rhbz795424-bitpos-25of25.patch index 7ebd094..be3e9cf 100644 --- a/gdb-rhbz795424-bitpos-25of25.patch +++ b/gdb-rhbz795424-bitpos-25of25.patch @@ -110,7 +110,7 @@ diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c int index; QUIT; -@@ -365,7 +365,7 @@ f_type_print_base (struct type *type, struct ui_file *stream, int show, +@@ -370,7 +370,7 @@ f_type_print_base (struct type *type, struct ui_file *stream, int show, else { upper_bound = f77_get_upperbound (type); diff --git a/gdb-vla-intel-fortran-strides.patch b/gdb-vla-intel-fortran-strides.patch index cbbd9fe..f5e54fe 100644 --- a/gdb-vla-intel-fortran-strides.patch +++ b/gdb-vla-intel-fortran-strides.patch @@ -145,7 +145,7 @@ diff --git a/gdb/dwarf2loc.h b/gdb/dwarf2loc.h diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c -@@ -17552,7 +17552,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17541,7 +17541,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; @@ -154,7 +154,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; -@@ -17572,7 +17572,9 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17561,7 +17561,9 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) low.kind = PROP_CONST; high.kind = PROP_CONST; @@ -164,7 +164,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c /* Set LOW_DEFAULT_IS_VALID if current language and DWARF version allow omitting DW_AT_lower_bound. */ -@@ -17605,6 +17607,14 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17594,6 +17596,14 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) break; } @@ -179,7 +179,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c attr = dwarf2_attr (die, DW_AT_lower_bound, cu); if (attr) attr_to_dynamic_prop (attr, die, cu, &low); -@@ -17682,7 +17692,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17671,7 +17681,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; @@ -896,7 +896,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; -@@ -1996,12 +2006,12 @@ resolve_dynamic_range (struct type *dyn_range_type, +@@ -1981,12 +1991,12 @@ resolve_dynamic_range (struct type *dyn_range_type, CORE_ADDR value; struct type *static_range_type, *static_target_type; const struct dynamic_prop *prop; @@ -911,7 +911,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c { low_bound.kind = PROP_CONST; low_bound.data.const_val = value; -@@ -2013,7 +2023,7 @@ resolve_dynamic_range (struct type *dyn_range_type, +@@ -1998,7 +2008,7 @@ resolve_dynamic_range (struct type *dyn_range_type, } prop = &TYPE_RANGE_DATA (dyn_range_type)->high; @@ -920,7 +920,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c { high_bound.kind = PROP_CONST; high_bound.data.const_val = value; -@@ -2028,12 +2038,20 @@ resolve_dynamic_range (struct type *dyn_range_type, +@@ -2013,12 +2023,20 @@ resolve_dynamic_range (struct type *dyn_range_type, high_bound.data.const_val = 0; } @@ -956,7 +956,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 hight bound is computed. */ -@@ -790,7 +794,6 @@ struct main_type +@@ -776,7 +780,6 @@ struct main_type /* * Union member used for range types. */ struct range_bounds *bounds; @@ -964,7 +964,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h } flds_bnds; /* * Slot to point to additional language-specific fields of this -@@ -1344,6 +1347,15 @@ extern bool set_type_align (struct type *, ULONGEST); +@@ -1329,6 +1332,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 @@ -980,7 +980,7 @@ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h /* Property accessors for the type data location. */ #define TYPE_DATA_LOCATION(thistype) \ -@@ -1378,6 +1390,9 @@ extern bool set_type_align (struct type *, ULONGEST); +@@ -1363,6 +1375,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)) @@ -990,7 +990,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)))) -@@ -1909,6 +1924,7 @@ extern struct type *create_array_type_with_stride +@@ -1892,6 +1907,7 @@ extern struct type *create_array_type_with_stride struct dynamic_prop *, unsigned int); extern struct type *create_range_type (struct type *, struct type *, @@ -1080,7 +1080,7 @@ diff --git a/gdb/rust-exp.y b/gdb/rust-exp.y diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c --- a/gdb/rust-lang.c +++ b/gdb/rust-lang.c -@@ -1106,13 +1106,11 @@ rust_range (struct expression *exp, int *pos, enum noside noside) +@@ -1105,13 +1105,11 @@ rust_range (struct expression *exp, int *pos, enum noside noside) kind = (enum range_type) longest_to_int (exp->elts[*pos + 1].longconst); *pos += 3; @@ -1097,7 +1097,7 @@ diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c if (noside == EVAL_SKIP) return value_from_longest (builtin_type (exp->gdbarch)->builtin_int, 1); -@@ -1201,7 +1199,7 @@ rust_compute_range (struct type *type, struct value *range, +@@ -1200,7 +1198,7 @@ rust_compute_range (struct type *type, struct value *range, *low = 0; *high = 0; @@ -1106,7 +1106,7 @@ diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c if (TYPE_NFIELDS (type) == 0) return; -@@ -1209,15 +1207,14 @@ rust_compute_range (struct type *type, struct value *range, +@@ -1208,15 +1206,14 @@ rust_compute_range (struct type *type, struct value *range, i = 0; if (strcmp (TYPE_FIELD_NAME (type, 0), "start") == 0) { @@ -1124,7 +1124,7 @@ diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c *high = value_as_long (value_field (range, i)); if (rust_inclusive_range_type_p (type)) -@@ -1235,7 +1232,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside, +@@ -1234,7 +1231,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside, struct type *rhstype; LONGEST low, high_bound; /* Initialized to appease the compiler. */ @@ -1133,7 +1133,7 @@ diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c LONGEST high = 0; int want_slice = 0; -@@ -1333,7 +1330,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside, +@@ -1332,7 +1329,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside, error (_("Cannot subscript non-array type")); if (want_slice @@ -1142,7 +1142,7 @@ diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c low = low_bound; if (low < 0) error (_("Index less than zero")); -@@ -1351,7 +1348,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside, +@@ -1350,7 +1347,7 @@ rust_subscript (struct expression *exp, int *pos, enum noside noside, CORE_ADDR addr; struct value *addrval, *tem; @@ -1763,7 +1763,7 @@ diff --git a/gdb/testsuite/gdb.fortran/vla.f90 b/gdb/testsuite/gdb.fortran/vla.f diff --git a/gdb/valarith.c b/gdb/valarith.c --- a/gdb/valarith.c +++ b/gdb/valarith.c -@@ -189,10 +189,16 @@ value_subscripted_rvalue (struct value *array, LONGEST index, int lowerbound) +@@ -187,10 +187,16 @@ value_subscripted_rvalue (struct value *array, LONGEST index, int 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); diff --git a/gdb-vla-intel-fortran-vla-strings.patch b/gdb-vla-intel-fortran-vla-strings.patch index 6588c1a..96d4545 100644 --- a/gdb-vla-intel-fortran-vla-strings.patch +++ b/gdb-vla-intel-fortran-vla-strings.patch @@ -35,7 +35,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 -@@ -59,6 +59,8 @@ SH-5/SH64 running OpenBSD SH-5/SH64 support in sh*-*-openbsd* +@@ -73,6 +73,8 @@ SH-5/SH64 running OpenBSD SH-5/SH64 support in sh*-*-openbsd* *** Changes in GDB 8.1 @@ -89,7 +89,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c /* memory allocation interface */ -@@ -13640,7 +13641,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu) +@@ -13639,7 +13640,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu) { newobj->static_link = XOBNEW (&objfile->objfile_obstack, struct dynamic_prop); @@ -98,7 +98,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c } cu->list_in_scope = &local_symbols; -@@ -16311,7 +16312,8 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -16304,7 +16305,8 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu) byte_stride_prop = (struct dynamic_prop *) alloca (sizeof (struct dynamic_prop)); @@ -108,7 +108,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c if (!stride_ok) { complaint (_("unable to read array DW_AT_byte_stride " -@@ -17076,29 +17078,90 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17065,29 +17067,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; @@ -210,7 +210,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c char_type = language_string_char_type (cu->language_defn, gdbarch); type = create_string_type (NULL, char_type, range_type); -@@ -17446,7 +17509,8 @@ read_base_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17435,7 +17498,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, @@ -220,7 +220,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c { struct dwarf2_property_baton *baton; struct obstack *obstack -@@ -17457,14 +17521,33 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die, +@@ -17446,14 +17510,33 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die, if (attr_form_is_block (attr)) { @@ -258,7 +258,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c } else if (attr_form_is_ref (attr)) { -@@ -17497,8 +17580,28 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die, +@@ -17486,8 +17569,28 @@ 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->locexpr.per_cu = cu->per_cu; @@ -289,7 +289,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c prop->data.baton = baton; prop->kind = PROP_LOCEXPR; gdb_assert (prop->data.baton != NULL); -@@ -17609,7 +17712,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17598,7 +17701,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) attr = dwarf2_attr (die, DW_AT_byte_stride, cu); if (attr) @@ -298,7 +298,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c complaint (_("Missing DW_AT_byte_stride " "- DIE at 0x%s [in module %s]"), sect_offset_str (die->sect_off), -@@ -17617,7 +17720,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17606,7 +17709,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) attr = dwarf2_attr (die, DW_AT_lower_bound, cu); if (attr) @@ -307,7 +307,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c else if (!low_default_is_valid) complaint (_("Missing DW_AT_lower_bound " "- DIE at %s [in module %s]"), -@@ -17625,10 +17728,10 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17614,10 +17717,10 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) objfile_name (cu->per_cu->dwarf2_per_objfile->objfile)); attr = dwarf2_attr (die, DW_AT_upper_bound, cu); @@ -320,7 +320,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c { /* If bounds are constant do the final calculation here. */ if (low.kind == PROP_CONST && high.kind == PROP_CONST) -@@ -25129,7 +25232,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) +@@ -25118,7 +25221,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)) { @@ -329,7 +329,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c add_dyn_prop (DYN_PROP_ALLOCATED, prop, type); } else if (attr != NULL) -@@ -25143,7 +25246,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) +@@ -25132,7 +25235,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)) { @@ -338,7 +338,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c add_dyn_prop (DYN_PROP_ASSOCIATED, prop, type); } else if (attr != NULL) -@@ -25155,7 +25258,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) +@@ -25144,7 +25247,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); @@ -490,7 +490,7 @@ diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c if (passed_a_ptr) fprintf_filtered (stream, ")"); -@@ -383,7 +388,7 @@ f_type_print_base (struct type *type, struct ui_file *stream, int show, +@@ -388,7 +393,7 @@ f_type_print_base (struct type *type, struct ui_file *stream, int show, fputs_filtered (" :: ", stream); fputs_filtered (TYPE_FIELD_NAME (type, index), stream); f_type_print_varspec_suffix (TYPE_FIELD_TYPE (type, index), @@ -502,7 +502,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 -@@ -1919,7 +1919,8 @@ is_dynamic_type_internal (struct type *type, int top_level) +@@ -1904,7 +1904,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. */ @@ -512,7 +512,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 -@@ -1953,6 +1954,7 @@ is_dynamic_type_internal (struct type *type, int top_level) +@@ -1938,6 +1939,7 @@ is_dynamic_type_internal (struct type *type, int top_level) } case TYPE_CODE_ARRAY: @@ -520,7 +520,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c { gdb_assert (TYPE_NFIELDS (type) == 1); -@@ -2071,7 +2073,8 @@ resolve_dynamic_array (struct type *type, +@@ -2056,7 +2058,8 @@ resolve_dynamic_array (struct type *type, struct dynamic_prop *prop; unsigned int bit_stride = 0; @@ -530,7 +530,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c type = copy_type (type); -@@ -2096,11 +2099,15 @@ resolve_dynamic_array (struct type *type, +@@ -2081,11 +2084,15 @@ resolve_dynamic_array (struct type *type, ary_dim = check_typedef (TYPE_TARGET_TYPE (elt_type)); @@ -547,7 +547,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c prop = get_dyn_prop (DYN_PROP_BYTE_STRIDE, type); if (prop != NULL) { -@@ -2255,6 +2262,28 @@ resolve_dynamic_struct (struct type *type, +@@ -2240,6 +2247,28 @@ resolve_dynamic_struct (struct type *type, return resolved_type; } @@ -576,7 +576,7 @@ diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c /* Worker for resolved_dynamic_type. */ static struct type * -@@ -2303,7 +2332,12 @@ resolve_dynamic_type_internal (struct type *type, +@@ -2288,7 +2317,12 @@ resolve_dynamic_type_internal (struct type *type, break; } diff --git a/gdb-x86_64-i386-syscall-restart.patch b/gdb-x86_64-i386-syscall-restart.patch index 4b1c096..f8b3e5a 100644 --- a/gdb-x86_64-i386-syscall-restart.patch +++ b/gdb-x86_64-i386-syscall-restart.patch @@ -103,7 +103,7 @@ diff --git a/gdb/amd64-nat.c b/gdb/amd64-nat.c if (regnum == -1 || regnum == i) memset (regs + amd64_native_gregset_reg_offset (gdbarch, i), 0, 8); @@ -163,4 +163,20 @@ amd64_collect_native_gregset (const struct regcache *regcache, - regcache_raw_collect (regcache, i, regs + offset); + regcache->raw_collect (i, regs + offset); } } + diff --git a/gdb.spec b/gdb.spec index b8b0d8c..d98a473 100644 --- a/gdb.spec +++ b/gdb.spec @@ -18,7 +18,7 @@ Name: %{?scl_prefix}gdb # Freeze it when GDB gets branched -%global snapsrc 20180529 +%global snapsrc 20180605 # See timestamp of source gnulib installed into gdb/gnulib/ . %global snapgnulib 20161115 %global tarname gdb-%{version} @@ -26,7 +26,7 @@ Version: 8.1.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: 16%{?dist} +Release: 17%{?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 Group: Development/Debuggers @@ -1026,6 +1026,9 @@ then fi %changelog +* Tue Jun 5 2018 Sergio Durigan Junior - 8.1.50.20180605-17.fc29 +- Rebase to FSF GDB 8.1.50.20180605 (8.2pre). + * Sat Jun 2 2018 Sergio Durigan Junior - 8.1.50.20180522-16.fc29 - Rebase to FSF GDB 8.1.50.20180529 (8.2pre). diff --git a/sources b/sources index 68212fa..1f485dd 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (gdb-libstdc++-v3-python-7.1.1-20170526.tar.xz) = 3d540b99581ffa4cf2810bec979c9a01a1f8ce782b7c8efb46b40dd2421d60cdb0e52b53c5477c3e86a57957a2a14489f5c29dc53868738a1ef79e79cf76d0a1 SHA512 (v1.6.1.tar.gz) = c7c9c8ba78021fff3fde12a216f5729c6031114e5a727f49b7ff1a31c53b5ddba24d1b3aee252d8278ecd1fafe78a44ed059c12b9eb29eca33093e0720673468 -SHA512 (gdb-8.1.50.20180529.tar.xz) = 93e2272eacf890c5ad99f7a04f8e24df8300a064730781adadcc65441e8a73fb1668d962628d3cbc10e6c91d8efe1bda211aa83ebd135667c502369339a963a7 +SHA512 (gdb-8.1.50.20180605.tar.xz) = cadfc5d9c28a227c29fe3a30cfe0c5bee4ac4c7daf2c383d2bbc0b121ce7190eafc153358ba98b1d48b16c1ff30393ae90ef449a76dd2c574989e34acb193351