575318a
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
575318a
From: Fedora GDB patches <invalid@email.com>
575318a
Date: Fri, 27 Oct 2017 21:07:50 +0200
575318a
Subject: gdb-rhbz795424-bitpos-22of25.patch
575318a
575318a
;; Fix `GDB cannot access struct member whose offset is larger than 256MB'
575318a
;; (RH BZ 795424).
575318a
;;=push
575318a
575318a
http://sourceware.org/ml/gdb-patches/2012-09/msg00629.html
575318a
575318a
--MP_/6HRlH6vpyqtSy4CYyMrX6b2
575318a
Content-Type: text/plain; charset=US-ASCII
575318a
Content-Transfer-Encoding: 7bit
575318a
Content-Disposition: inline
575318a
575318a
Hi,
575318a
575318a
This is part three of the bitpos expansion change.  Some architectures
575318a
allow arbitrary length watchpoints and combined with the fact that type
575318a
lengths could be large enough, we need LONGEST for watchpoint lengths.
575318a
It is architecture dependent however, whether the LONGEST is needed or
575318a
not.  This patch updates the signatures of watchpoint insertion and
575318a
removal functions of all architectures (to comply with the function
575318a
signatures in the callback struct), but expands types only in
575318a
architectures that need it.  Tested on Fedora 16 x86_64.
575318a
575318a
Regards,
575318a
Siddhesh
575318a
--MP_/6HRlH6vpyqtSy4CYyMrX6b2
575318a
Content-Type: text/plain
575318a
Content-Transfer-Encoding: quoted-printable
575318a
Content-Disposition: attachment; filename=ChangeLog-wp
575318a
575318a
gdb/ChangeLog:
575318a
575318a
	* arm-linux-nat.c (arm_linux_insert_watchpoint): Expand
575318a
	parameter LEN to LONGEST.
575318a
	(arm_linux_remove_watchpoint): Likewise.
575318a
	(arm_linux_watchpoint_addr_within_range): Expand parameter
575318a
	LENGTH to LONGEST.
575318a
	* i386-nat.c (i386_insert_watchpoint): Expand parameter LEN to
575318a
	LONGEST.
575318a
	(i386_remove_watchpoint): Likewise.
575318a
	* ia64-linux-nat.c (ia64_linux_insert_watchpoint): Likewise.
575318a
	(ia64_linux_remove_watchpoint): Likewise.
575318a
	* inf-ttrace.c (inf_ttrace_insert_watchpoint): Likewise.
575318a
	Expand NUM_PAGES, PAGE to LONGEST.
575318a
	(inf_ttrace_remove_watchpoint): Likewise.
575318a
	* mips-linux-nat.c (mips_linux_insert_watchpoint): Expand
575318a
	parameter LEN to LONGEST.
575318a
	(mips_linux_remove_watchpoint): Likewise.
575318a
	* nto-procfs.c (procfs_remove_hw_watchpoint): Likewise.
575318a
	(procfs_insert_hw_watchpoint): Likewise.
575318a
	* ppc-linux-nat.c (calculate_dvc): Likewise.  Expand I,
575318a
	NUM_BYTE_ENABLE to LONGEST.
575318a
	(check_condition): Expand parameter LEN to point to LONGEST.
575318a
	(ppc_linux_can_accel_watchpoint_condition): Expand parameter
575318a
	LEN to LONGEST.
575318a
	(create_watchpoint_request): Likewise.
575318a
	(ppc_linux_insert_watchpoint): Likewise.
575318a
	(ppc_linux_remove_watchpoint): Likewise.
575318a
	(ppc_linux_watchpoint_addr_within_range): Expand parameter
575318a
	LENGTH to LONGEST.
575318a
	* procfs.c (proc_set_watchpoint): Expand parameter LEN to
575318a
	LONGEST.
575318a
	(procfs_set_watchpoint): Likewise.
575318a
	(procfs_insert_watchpoint): Likewise.
575318a
	(procfs_remove_watchpoint): Likewise.
575318a
	* remote-m32r-sdi.c (m32r_insert_watchpoint): Likewise.  Use
575318a
	plongest to format print LEN.
575318a
	(m32r_remove_watchpoint): Likewise.
575318a
	* remote-mips.c (mips_insert_watchpoint): Expand parameter LEN
575318a
	to LONGEST.
575318a
	(mips_remove_watchpoint): Likewise.
575318a
	* remote.c (remote_insert_watchpoint): Likewise.
575318a
	Use phex_nz to format print LEN.
575318a
	(remote_remove_watchpoint): Likewise.
575318a
	(remote_watchpoint_addr_within_range): Expand parameter LENGTH
575318a
	to LONGEST.
575318a
	* s390-linux-nat.c (s390_insert_watchpoint): Expand parameter LEN to
575318a
	LONGEST.
575318a
	(s390_remove_watchpoint): Likewise.
575318a
	* target.c (update_current_target): Expand parameter LEN for
575318a
	callbacks to TO_INSERT_WATCHPOINT, TO_REMOVE_WATCHPOINT,
575318a
	TO_CAN_ACCEL_WATCHPOINT_CONDITION, to LONGEST.
575318a
	(default_watchpoint_addr_within_range): Expand parameter
575318a
	LENGTH to LONGEST.
575318a
	(debug_to_can_accel_watchpoint_condition): Expand parameter LEN
575318a
	to LONGEST.  Use plongest to format print LEN.
575318a
	(debug_to_watchpoint_addr_within_range): Expand parameter LENGTH
575318a
	to LONGEST.  Use plongest to format print LENGTH.
575318a
	(debug_to_insert_watchpoint): Expand parameter LEN to LONGEST.
575318a
	Use plongest to format print LEN.
575318a
	(debug_to_remove_watchpoint): Likewise.
575318a
	* target.h (struct target_ops): Expand parameter LEN of
575318a
	TO_REMOVE_WATCHPOINT, TO_INSERT_WATCHPOINT,
575318a
	TO_WATCHPOINT_ADDR_WITHIN_RANGE and
575318a
	TO_CAN_ACCEL_WATCHPOINT_CONDITION to LONGEST.
575318a
575318a
--MP_/6HRlH6vpyqtSy4CYyMrX6b2
575318a
Content-Type: text/x-patch
575318a
Content-Transfer-Encoding: 7bit
575318a
Content-Disposition: attachment; filename=bitpos-wp.patch
575318a
575318a
diff -Naurp insight-8.2.50.20190118.orig/gdb/aarch64-linux-nat.c insight-8.2.50.20190118.new/gdb/aarch64-linux-nat.c
575318a
--- insight-8.2.50.20190118.orig/gdb/aarch64-linux-nat.c	2019-01-20 18:38:17.037452549 +0100
575318a
+++ insight-8.2.50.20190118.new/gdb/aarch64-linux-nat.c	2019-01-20 18:39:09.941957870 +0100
575318a
@@ -63,14 +63,14 @@ public:
575318a
   int can_use_hw_breakpoint (enum bptype, int, int) override;
575318a
   int insert_hw_breakpoint (struct gdbarch *, struct bp_target_info *) override;
575318a
   int remove_hw_breakpoint (struct gdbarch *, struct bp_target_info *) override;
575318a
-  int region_ok_for_hw_watchpoint (CORE_ADDR, int) override;
575318a
+  int region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST) override;
575318a
   int insert_watchpoint (CORE_ADDR, int, enum target_hw_bp_type,
575318a
 			 struct expression *) override;
575318a
   int remove_watchpoint (CORE_ADDR, int, enum target_hw_bp_type,
575318a
 			 struct expression *) override;
575318a
   bool stopped_by_watchpoint () override;
575318a
   bool stopped_data_address (CORE_ADDR *) override;
575318a
-  bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, int) override;
575318a
+  bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, LONGEST) override;
575318a
 
575318a
   int can_do_single_step () override;
575318a
 
575318a
@@ -887,7 +887,8 @@ aarch64_linux_nat_target::stopped_by_wat
575318a
 
575318a
 bool
575318a
 aarch64_linux_nat_target::watchpoint_addr_within_range (CORE_ADDR addr,
575318a
-							CORE_ADDR start, int length)
575318a
+							CORE_ADDR start,
575318a
+							LONGEST length)
575318a
 {
575318a
   return start <= addr && start + length - 1 >= addr;
575318a
 }
575318a
diff -Naurp insight-8.2.50.20190118.orig/gdb/arm-linux-nat.c insight-8.2.50.20190118.new/gdb/arm-linux-nat.c
575318a
--- insight-8.2.50.20190118.orig/gdb/arm-linux-nat.c	2019-01-20 18:38:17.040452579 +0100
575318a
+++ insight-8.2.50.20190118.new/gdb/arm-linux-nat.c	2019-01-20 18:39:09.941957870 +0100
575318a
@@ -80,7 +80,7 @@ public:
575318a
 
575318a
   int remove_hw_breakpoint (struct gdbarch *, struct bp_target_info *) override;
575318a
 
575318a
-  int region_ok_for_hw_watchpoint (CORE_ADDR, int) override;
575318a
+  int region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST) override;
575318a
 
575318a
   int insert_watchpoint (CORE_ADDR, int, enum target_hw_bp_type,
575318a
 			 struct expression *) override;
575318a
@@ -91,7 +91,7 @@ public:
575318a
 
575318a
   bool stopped_data_address (CORE_ADDR *) override;
575318a
 
575318a
-  bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, int) override;
575318a
+  bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, LONGEST) override;
575318a
 
575318a
   const struct target_desc *read_description () override;
575318a
 
575318a
@@ -1203,7 +1203,7 @@ arm_linux_nat_target::stopped_by_watchpo
575318a
 bool
575318a
 arm_linux_nat_target::watchpoint_addr_within_range (CORE_ADDR addr,
575318a
 						    CORE_ADDR start,
575318a
-						    int length)
575318a
+						    LONGEST length)
575318a
 {
575318a
   return start <= addr && start + length - 1 >= addr;
575318a
 }
575318a
diff -Naurp insight-8.2.50.20190118.orig/gdb/nat/aarch64-linux-hw-point.c insight-8.2.50.20190118.new/gdb/nat/aarch64-linux-hw-point.c
575318a
--- insight-8.2.50.20190118.orig/gdb/nat/aarch64-linux-hw-point.c	2019-01-01 13:50:43.000000000 +0100
575318a
+++ insight-8.2.50.20190118.new/gdb/nat/aarch64-linux-hw-point.c	2019-01-20 18:39:09.942957879 +0100
575318a
@@ -137,7 +137,7 @@ aarch64_point_encode_ctrl_reg (enum targ
575318a
    Return 0 for any non-compliant ADDR and/or LEN; return 1 otherwise.  */
575318a
 
575318a
 static int
575318a
-aarch64_point_is_aligned (int is_watchpoint, CORE_ADDR addr, int len)
575318a
+aarch64_point_is_aligned (int is_watchpoint, CORE_ADDR addr, LONGEST len)
575318a
 {
575318a
   unsigned int alignment = 0;
575318a
 
575318a
@@ -212,9 +212,10 @@ aarch64_point_is_aligned (int is_watchpo
575318a
    an address within the latter. */
575318a
 
575318a
 static void
575318a
-aarch64_align_watchpoint (CORE_ADDR addr, int len, CORE_ADDR *aligned_addr_p,
575318a
+aarch64_align_watchpoint (CORE_ADDR addr, LONGEST len,
575318a
+			  CORE_ADDR *aligned_addr_p,
575318a
 			  int *aligned_offset_p, int *aligned_len_p,
575318a
-			  CORE_ADDR *next_addr_p, int *next_len_p,
575318a
+			  CORE_ADDR *next_addr_p, LONGEST *next_len_p,
575318a
 			  CORE_ADDR *next_addr_orig_p)
575318a
 {
575318a
   int aligned_len;
575318a
@@ -611,7 +612,7 @@ aarch64_handle_aligned_watchpoint (enum
575318a
 
575318a
 static int
575318a
 aarch64_handle_unaligned_watchpoint (enum target_hw_bp_type type,
575318a
-				     CORE_ADDR addr, int len, int is_insert,
575318a
+				     CORE_ADDR addr, LONGEST len, int is_insert,
575318a
 				     struct aarch64_debug_reg_state *state)
575318a
 {
575318a
   CORE_ADDR addr_orig = addr;
575318a
@@ -641,12 +642,12 @@ aarch64_handle_unaligned_watchpoint (enu
575318a
 		      "                                "
575318a
 		      "addr_orig: %s\n"
575318a
 		      "                                "
575318a
-		      "next_addr: %s,    next_len: %d\n"
575318a
+		      "next_addr: %s,    next_len: %s\n"
575318a
 		      "                           "
575318a
 		      "addr_orig_next: %s\n",
575318a
 		      is_insert, core_addr_to_string_nz (aligned_addr),
575318a
 		      aligned_len, core_addr_to_string_nz (addr_orig),
575318a
-		      core_addr_to_string_nz (addr), len,
575318a
+		      core_addr_to_string_nz (addr), plongest (len),
575318a
 		      core_addr_to_string_nz (addr_orig_next));
575318a
 
575318a
       addr_orig = addr_orig_next;
575318a
@@ -660,7 +661,7 @@ aarch64_handle_unaligned_watchpoint (enu
575318a
 
575318a
 int
575318a
 aarch64_handle_watchpoint (enum target_hw_bp_type type, CORE_ADDR addr,
575318a
-			   int len, int is_insert,
575318a
+			   LONGEST len, int is_insert,
575318a
 			   struct aarch64_debug_reg_state *state)
575318a
 {
575318a
   if (aarch64_point_is_aligned (1 /* is_watchpoint */ , addr, len))
575318a
@@ -742,14 +743,14 @@ aarch64_linux_any_set_debug_regs_state (
575318a
 void
575318a
 aarch64_show_debug_reg_state (struct aarch64_debug_reg_state *state,
575318a
 			      const char *func, CORE_ADDR addr,
575318a
-			      int len, enum target_hw_bp_type type)
575318a
+			      LONGEST len, enum target_hw_bp_type type)
575318a
 {
575318a
   int i;
575318a
 
575318a
   debug_printf ("%s", func);
575318a
   if (addr || len)
575318a
-    debug_printf (" (addr=0x%08lx, len=%d, type=%s)",
575318a
-		  (unsigned long) addr, len,
575318a
+    debug_printf (" (addr=0x%08lx, len=%s, type=%s)",
575318a
+		  (unsigned long) addr, plongest (len),
575318a
 		  type == hw_write ? "hw-write-watchpoint"
575318a
 		  : (type == hw_read ? "hw-read-watchpoint"
575318a
 		     : (type == hw_access ? "hw-access-watchpoint"
575318a
@@ -832,7 +833,7 @@ aarch64_linux_get_debug_reg_capacity (in
575318a
    ADDR and whose length is LEN in bytes.  */
575318a
 
575318a
 int
575318a
-aarch64_linux_region_ok_for_watchpoint (CORE_ADDR addr, int len)
575318a
+aarch64_linux_region_ok_for_watchpoint (CORE_ADDR addr, LONGEST len)
575318a
 {
575318a
   CORE_ADDR aligned_addr;
575318a
 
575318a
diff -Naurp insight-8.2.50.20190118.orig/gdb/nat/aarch64-linux-hw-point.h insight-8.2.50.20190118.new/gdb/nat/aarch64-linux-hw-point.h
575318a
--- insight-8.2.50.20190118.orig/gdb/nat/aarch64-linux-hw-point.h	2019-01-01 13:50:43.000000000 +0100
575318a
+++ insight-8.2.50.20190118.new/gdb/nat/aarch64-linux-hw-point.h	2019-01-20 18:39:09.942957879 +0100
575318a
@@ -176,7 +176,7 @@ int aarch64_handle_breakpoint (enum targ
575318a
 			       int len, int is_insert,
575318a
 			       struct aarch64_debug_reg_state *state);
575318a
 int aarch64_handle_watchpoint (enum target_hw_bp_type type, CORE_ADDR addr,
575318a
-			       int len, int is_insert,
575318a
+			       LONGEST len, int is_insert,
575318a
 			       struct aarch64_debug_reg_state *state);
575318a
 
575318a
 void aarch64_linux_set_debug_regs (struct aarch64_debug_reg_state *state,
575318a
@@ -189,12 +189,12 @@ bool aarch64_linux_any_set_debug_regs_st
575318a
 
575318a
 void aarch64_show_debug_reg_state (struct aarch64_debug_reg_state *state,
575318a
 				   const char *func, CORE_ADDR addr,
575318a
-				   int len, enum target_hw_bp_type type);
575318a
+				   LONGEST len, enum target_hw_bp_type type);
575318a
 
575318a
 void aarch64_linux_get_debug_reg_capacity (int tid);
575318a
 
575318a
 struct aarch64_debug_reg_state *aarch64_get_debug_reg_state (pid_t pid);
575318a
 
575318a
-int aarch64_linux_region_ok_for_watchpoint (CORE_ADDR addr, int len);
575318a
+int aarch64_linux_region_ok_for_watchpoint (CORE_ADDR addr, LONGEST len);
575318a
 
575318a
 #endif /* AARCH64_LINUX_HW_POINT_H */
575318a
diff -Naurp insight-8.2.50.20190118.orig/gdb/ppc-linux-nat.c insight-8.2.50.20190118.new/gdb/ppc-linux-nat.c
575318a
--- insight-8.2.50.20190118.orig/gdb/ppc-linux-nat.c	2019-01-20 18:38:17.051452687 +0100
575318a
+++ insight-8.2.50.20190118.new/gdb/ppc-linux-nat.c	2019-01-20 18:39:09.943957889 +0100
575318a
@@ -284,7 +284,7 @@ struct ppc_linux_nat_target final : publ
575318a
   int remove_hw_breakpoint (struct gdbarch *, struct bp_target_info *)
575318a
     override;
575318a
 
575318a
-  int region_ok_for_hw_watchpoint (CORE_ADDR, int) override;
575318a
+  int region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST) override;
575318a
 
575318a
   int insert_watchpoint (CORE_ADDR, int, enum target_hw_bp_type,
575318a
 			 struct expression *) override;
575318a
@@ -302,9 +302,9 @@ struct ppc_linux_nat_target final : publ
575318a
 
575318a
   bool stopped_data_address (CORE_ADDR *) override;
575318a
 
575318a
-  bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, int) override;
575318a
+  bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, LONGEST) override;
575318a
 
575318a
-  bool can_accel_watchpoint_condition (CORE_ADDR, int, int, struct expression *)
575318a
+  bool can_accel_watchpoint_condition (CORE_ADDR, LONGEST, int, struct expression *)
575318a
     override;
575318a
 
575318a
   int masked_watch_num_registers (CORE_ADDR, CORE_ADDR) override;
575318a
@@ -2065,11 +2065,11 @@ can_use_watchpoint_cond_accel (void)
575318a
    CONDITION_VALUE will hold the value which should be put in the
575318a
    DVC register.  */
575318a
 static void
575318a
-calculate_dvc (CORE_ADDR addr, int len, CORE_ADDR data_value,
575318a
+calculate_dvc (CORE_ADDR addr, LONGEST len, CORE_ADDR data_value,
575318a
 	       uint32_t *condition_mode, uint64_t *condition_value)
575318a
 {
575318a
-  int i, num_byte_enable, align_offset, num_bytes_off_dvc,
575318a
-      rightmost_enabled_byte;
575318a
+  LONGEST i, num_byte_enable;
575318a
+  int align_offset, num_bytes_off_dvc, rightmost_enabled_byte;
575318a
   CORE_ADDR addr_end_data, addr_end_dvc;
575318a
 
575318a
   /* The DVC register compares bytes within fixed-length windows which
575318a
@@ -2157,7 +2157,7 @@ num_memory_accesses (const std::vector
575318a
    of the constant.  */
575318a
 static int
575318a
 check_condition (CORE_ADDR watch_addr, struct expression *cond,
575318a
-		 CORE_ADDR *data_value, int *len)
575318a
+		 CORE_ADDR *data_value, LONGEST *len)
575318a
 {
575318a
   int pc = 1, num_accesses_left, num_accesses_right;
575318a
   struct value *left_val, *right_val;
575318a
@@ -2208,7 +2208,8 @@ check_condition (CORE_ADDR watch_addr, s
575318a
    the condition expression, thus only triggering the watchpoint when it is
575318a
    true.  */
575318a
 bool
575318a
-ppc_linux_nat_target::can_accel_watchpoint_condition (CORE_ADDR addr, int len,
575318a
+ppc_linux_nat_target::can_accel_watchpoint_condition (CORE_ADDR addr,
575318a
+						      LONGEST len,
575318a
 						      int rw,
575318a
 						      struct expression *cond)
575318a
 {
575318a
@@ -2226,7 +2227,7 @@ ppc_linux_nat_target::can_accel_watchpoi
575318a
 
575318a
 static void
575318a
 create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr,
575318a
-			   int len, enum target_hw_bp_type type,
575318a
+			   LONGEST len, enum target_hw_bp_type type,
575318a
 			   struct expression *cond, int insert)
575318a
 {
575318a
   if (len == 1
575318a
@@ -2492,7 +2493,7 @@ ppc_linux_nat_target::stopped_by_watchpo
575318a
 bool
575318a
 ppc_linux_nat_target::watchpoint_addr_within_range (CORE_ADDR addr,
575318a
 						    CORE_ADDR start,
575318a
-						    int length)
575318a
+						    LONGEST length)
575318a
 {
575318a
   int mask;
575318a
 
575318a
diff -Naurp insight-8.2.50.20190118.orig/gdb/procfs.c insight-8.2.50.20190118.new/gdb/procfs.c
575318a
--- insight-8.2.50.20190118.orig/gdb/procfs.c	2019-01-20 18:38:17.052452697 +0100
575318a
+++ insight-8.2.50.20190118.new/gdb/procfs.c	2019-01-20 18:39:09.944957898 +0100
575318a
@@ -1541,7 +1541,7 @@ procfs_address_to_host_pointer (CORE_ADD
575318a
 }
575318a
 
575318a
 static int
575318a
-proc_set_watchpoint (procinfo *pi, CORE_ADDR addr, int len, int wflags)
575318a
+proc_set_watchpoint (procinfo *pi, CORE_ADDR addr, LONGEST len, int wflags)
575318a
 {
575318a
   struct {
575318a
     procfs_ctl_t cmd;
575318a
@@ -3233,7 +3233,7 @@ procfs_target::pid_to_exec_file (int pid
575318a
 /* Insert a watchpoint.  */
575318a
 
575318a
 static int
575318a
-procfs_set_watchpoint (ptid_t ptid, CORE_ADDR addr, int len, int rwflag,
575318a
+procfs_set_watchpoint (ptid_t ptid, CORE_ADDR addr, LONGEST len, int rwflag,
575318a
 		       int after)
575318a
 {
575318a
   int       pflags = 0;
575318a
diff -Naurp insight-8.2.50.20190118.orig/gdb/remote.c insight-8.2.50.20190118.new/gdb/remote.c
575318a
--- insight-8.2.50.20190118.orig/gdb/remote.c	2019-01-20 18:38:17.054452717 +0100
575318a
+++ insight-8.2.50.20190118.new/gdb/remote.c	2019-01-20 18:39:09.947957926 +0100
575318a
@@ -451,7 +451,7 @@ public:
575318a
 
575318a
   bool stopped_data_address (CORE_ADDR *) override;
575318a
 
575318a
-  bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, int) override;
575318a
+  bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, LONGEST) override;
575318a
 
575318a
   int can_use_hw_breakpoint (enum bptype, int, int) override;
575318a
 
575318a
@@ -10336,7 +10336,7 @@ remote_target::insert_watchpoint (CORE_A
575318a
   p = strchr (rs->buf.data (), '\0');
575318a
   addr = remote_address_masked (addr);
575318a
   p += hexnumstr (p, (ULONGEST) addr);
575318a
-  xsnprintf (p, endbuf - p, ",%x", len);
575318a
+  xsnprintf (p, endbuf - p, ",%s", phex_nz (len, sizeof (len)));
575318a
 
575318a
   putpkt (rs->buf);
575318a
   getpkt (&rs->buf, 0);
575318a
@@ -10356,7 +10356,7 @@ remote_target::insert_watchpoint (CORE_A
575318a
 
575318a
 bool
575318a
 remote_target::watchpoint_addr_within_range (CORE_ADDR addr,
575318a
-					     CORE_ADDR start, int length)
575318a
+					     CORE_ADDR start, LONGEST length)
575318a
 {
575318a
   CORE_ADDR diff = remote_address_masked (addr - start);
575318a
 
575318a
@@ -10385,7 +10385,7 @@ remote_target::remove_watchpoint (CORE_A
575318a
   p = strchr (rs->buf.data (), '\0');
575318a
   addr = remote_address_masked (addr);
575318a
   p += hexnumstr (p, (ULONGEST) addr);
575318a
-  xsnprintf (p, endbuf - p, ",%x", len);
575318a
+  xsnprintf (p, endbuf - p, ",%s", phex_nz (len, sizeof (len)));
575318a
   putpkt (rs->buf);
575318a
   getpkt (&rs->buf, 0);
575318a
 
575318a
diff -Naurp insight-8.2.50.20190118.orig/gdb/s390-linux-nat.c insight-8.2.50.20190118.new/gdb/s390-linux-nat.c
575318a
--- insight-8.2.50.20190118.orig/gdb/s390-linux-nat.c	2019-01-20 18:38:17.054452717 +0100
575318a
+++ insight-8.2.50.20190118.new/gdb/s390-linux-nat.c	2019-01-20 18:39:09.948957936 +0100
575318a
@@ -121,7 +121,7 @@ public:
575318a
     override;
575318a
   int remove_hw_breakpoint (struct gdbarch *, struct bp_target_info *)
575318a
     override;
575318a
-  int region_ok_for_hw_watchpoint (CORE_ADDR, int) override;
575318a
+  int region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST) override;
575318a
   bool stopped_by_watchpoint () override;
575318a
   int insert_watchpoint (CORE_ADDR, int, enum target_hw_bp_type,
575318a
 			 struct expression *) override;
575318a
diff -Naurp insight-8.2.50.20190118.orig/gdb/target.c insight-8.2.50.20190118.new/gdb/target.c
575318a
--- insight-8.2.50.20190118.orig/gdb/target.c	2019-01-20 18:38:17.056452736 +0100
575318a
+++ insight-8.2.50.20190118.new/gdb/target.c	2019-01-20 18:39:09.949957945 +0100
575318a
@@ -56,7 +56,7 @@ static void generic_tls_error (void) ATT
575318a
 static void default_terminal_info (struct target_ops *, const char *, int);
575318a
 
575318a
 static int default_watchpoint_addr_within_range (struct target_ops *,
575318a
-						 CORE_ADDR, CORE_ADDR, int);
575318a
+						 CORE_ADDR, CORE_ADDR, LONGEST);
575318a
 
575318a
 static int default_region_ok_for_hw_watchpoint (struct target_ops *,
575318a
 						CORE_ADDR, LONGEST);
575318a
@@ -3103,7 +3103,7 @@ default_region_ok_for_hw_watchpoint (str
575318a
 static int
575318a
 default_watchpoint_addr_within_range (struct target_ops *target,
575318a
 				      CORE_ADDR addr,
575318a
-				      CORE_ADDR start, int length)
575318a
+				      CORE_ADDR start, LONGEST length)
575318a
 {
575318a
   return addr >= start && addr < start + length;
575318a
 }
575318a
diff -Naurp insight-8.2.50.20190118.orig/gdb/target-delegates.c insight-8.2.50.20190118.new/gdb/target-delegates.c
575318a
--- insight-8.2.50.20190118.orig/gdb/target-delegates.c	2019-01-20 18:38:17.055452727 +0100
575318a
+++ insight-8.2.50.20190118.new/gdb/target-delegates.c	2019-01-20 18:39:09.949957945 +0100
575318a
@@ -37,9 +37,9 @@ struct dummy_target : public target_ops
575318a
   bool stopped_by_watchpoint () override;
575318a
   bool have_steppable_watchpoint () override;
575318a
   bool stopped_data_address (CORE_ADDR *arg0) override;
575318a
-  bool watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, int arg2) override;
575318a
+  bool watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, LONGEST arg2) override;
575318a
   int region_ok_for_hw_watchpoint (CORE_ADDR arg0, LONGEST arg1) override;
575318a
-  bool can_accel_watchpoint_condition (CORE_ADDR arg0, int arg1, int arg2, struct expression *arg3) override;
575318a
+  bool can_accel_watchpoint_condition (CORE_ADDR arg0, LONGEST arg1, int arg2, struct expression *arg3) override;
575318a
   int masked_watch_num_registers (CORE_ADDR arg0, CORE_ADDR arg1) override;
575318a
   int can_do_single_step () override;
575318a
   bool supports_terminal_ours () override;
575318a
@@ -204,9 +204,9 @@ struct debug_target : public target_ops
575318a
   bool stopped_by_watchpoint () override;
575318a
   bool have_steppable_watchpoint () override;
575318a
   bool stopped_data_address (CORE_ADDR *arg0) override;
575318a
-  bool watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, int arg2) override;
575318a
+  bool watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, LONGEST arg2) override;
575318a
   int region_ok_for_hw_watchpoint (CORE_ADDR arg0, LONGEST arg1) override;
575318a
-  bool can_accel_watchpoint_condition (CORE_ADDR arg0, int arg1, int arg2, struct expression *arg3) override;
575318a
+  bool can_accel_watchpoint_condition (CORE_ADDR arg0, LONGEST arg1, int arg2, struct expression *arg3) override;
575318a
   int masked_watch_num_registers (CORE_ADDR arg0, CORE_ADDR arg1) override;
575318a
   int can_do_single_step () override;
575318a
   bool supports_terminal_ours () override;
575318a
@@ -1041,19 +1041,19 @@ debug_target::stopped_data_address (CORE
575318a
 }
575318a
 
575318a
 bool
575318a
-target_ops::watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, int arg2)
575318a
+target_ops::watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, LONGEST arg2)
575318a
 {
575318a
   return this->beneath ()->watchpoint_addr_within_range (arg0, arg1, arg2);
575318a
 }
575318a
 
575318a
 bool
575318a
-dummy_target::watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, int arg2)
575318a
+dummy_target::watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, LONGEST arg2)
575318a
 {
575318a
   return default_watchpoint_addr_within_range (this, arg0, arg1, arg2);
575318a
 }
575318a
 
575318a
 bool
575318a
-debug_target::watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, int arg2)
575318a
+debug_target::watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, LONGEST arg2)
575318a
 {
575318a
   bool result;
575318a
   fprintf_unfiltered (gdb_stdlog, "-> %s->watchpoint_addr_within_range (...)\n", this->beneath ()->shortname ());
575318a
@@ -1063,7 +1063,7 @@ debug_target::watchpoint_addr_within_ran
575318a
   fputs_unfiltered (", ", gdb_stdlog);
575318a
   target_debug_print_CORE_ADDR (arg1);
575318a
   fputs_unfiltered (", ", gdb_stdlog);
575318a
-  target_debug_print_int (arg2);
575318a
+  target_debug_print_LONGEST (arg2);
575318a
   fputs_unfiltered (") = ", gdb_stdlog);
575318a
   target_debug_print_bool (result);
575318a
   fputs_unfiltered ("\n", gdb_stdlog);
575318a
@@ -1099,19 +1099,19 @@ debug_target::region_ok_for_hw_watchpoin
575318a
 }
575318a
 
575318a
 bool
575318a
-target_ops::can_accel_watchpoint_condition (CORE_ADDR arg0, int arg1, int arg2, struct expression *arg3)
575318a
+target_ops::can_accel_watchpoint_condition (CORE_ADDR arg0, LONGEST arg1, int arg2, struct expression *arg3)
575318a
 {
575318a
   return this->beneath ()->can_accel_watchpoint_condition (arg0, arg1, arg2, arg3);
575318a
 }
575318a
 
575318a
 bool
575318a
-dummy_target::can_accel_watchpoint_condition (CORE_ADDR arg0, int arg1, int arg2, struct expression *arg3)
575318a
+dummy_target::can_accel_watchpoint_condition (CORE_ADDR arg0, LONGEST arg1, int arg2, struct expression *arg3)
575318a
 {
575318a
   return false;
575318a
 }
575318a
 
575318a
 bool
575318a
-debug_target::can_accel_watchpoint_condition (CORE_ADDR arg0, int arg1, int arg2, struct expression *arg3)
575318a
+debug_target::can_accel_watchpoint_condition (CORE_ADDR arg0, LONGEST arg1, int arg2, struct expression *arg3)
575318a
 {
575318a
   bool result;
575318a
   fprintf_unfiltered (gdb_stdlog, "-> %s->can_accel_watchpoint_condition (...)\n", this->beneath ()->shortname ());
575318a
@@ -1119,7 +1119,7 @@ debug_target::can_accel_watchpoint_condi
575318a
   fprintf_unfiltered (gdb_stdlog, "<- %s->can_accel_watchpoint_condition (", this->beneath ()->shortname ());
575318a
   target_debug_print_CORE_ADDR (arg0);
575318a
   fputs_unfiltered (", ", gdb_stdlog);
575318a
-  target_debug_print_int (arg1);
575318a
+  target_debug_print_LONGEST (arg1);
575318a
   fputs_unfiltered (", ", gdb_stdlog);
575318a
   target_debug_print_int (arg2);
575318a
   fputs_unfiltered (", ", gdb_stdlog);
575318a
diff -Naurp insight-8.2.50.20190118.orig/gdb/target.h insight-8.2.50.20190118.new/gdb/target.h
575318a
--- insight-8.2.50.20190118.orig/gdb/target.h	2019-01-20 18:38:17.056452736 +0100
575318a
+++ insight-8.2.50.20190118.new/gdb/target.h	2019-01-20 18:39:09.950957954 +0100
575318a
@@ -561,7 +561,7 @@ struct target_ops
575318a
       TARGET_DEFAULT_RETURN (false);
575318a
     virtual bool stopped_data_address (CORE_ADDR *)
575318a
       TARGET_DEFAULT_RETURN (false);
575318a
-    virtual bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, int)
575318a
+    virtual bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, LONGEST)
575318a
       TARGET_DEFAULT_FUNC (default_watchpoint_addr_within_range);
575318a
 
575318a
     /* Documentation of this routine is provided with the corresponding
575318a
@@ -569,7 +569,7 @@ struct target_ops
575318a
     virtual int region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST)
575318a
       TARGET_DEFAULT_FUNC (default_region_ok_for_hw_watchpoint);
575318a
 
575318a
-    virtual bool can_accel_watchpoint_condition (CORE_ADDR, int, int,
575318a
+    virtual bool can_accel_watchpoint_condition (CORE_ADDR, LONGEST, int,
575318a
 						 struct expression *)
575318a
       TARGET_DEFAULT_RETURN (false);
575318a
     virtual int masked_watch_num_registers (CORE_ADDR, CORE_ADDR)