This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[rfc][36/37] Eliminate builtin_type_ macros: Use target arch in solib code


Hello,

just like the bsd-uthread patch, this patch changes every instance of
builtin_type_void_data_ptr in solib-related code to use target_gdbarch
associated builtin types instead.

Bye,
Ulrich

ChangeLog:

	* solib-svr4.c (LM_ADDR_FROM_LINK_MAP): Use builtin types of
	target_gdbarch instead of builtin_type_void_data_ptr.
	(LM_DYNAMIC_FROM_LINK_MAP, LM_NEXT, LM_NAME,
	IGNORE_FIRST_LINK_MAP_ENTRY, scan_dyntag, elf_locate_base,
	solib_svr4_r_map, solib_svr4_r_brk, solib_svr4_r_ldsomap,
	open_symbol_file_object): Likewise.
	* nto-tdep.c (LM_ADDR): Likewise.


Index: gdb-head/gdb/nto-tdep.c
===================================================================
--- gdb-head.orig/gdb/nto-tdep.c
+++ gdb-head/gdb/nto-tdep.c
@@ -280,10 +280,10 @@ LM_ADDR (struct so_list *so)
   if (so->lm_info->l_addr == (CORE_ADDR)-1)
     {
       struct link_map_offsets *lmo = nto_fetch_link_map_offsets ();
+      struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
 
       so->lm_info->l_addr =
-	    extract_typed_address (so->lm_info->lm + lmo->l_addr_offset,
-				   builtin_type_void_data_ptr);
+	extract_typed_address (so->lm_info->lm + lmo->l_addr_offset, ptr_type);
     }
   return so->lm_info->l_addr;
 }
Index: gdb-head/gdb/solib-svr4.c
===================================================================
--- gdb-head.orig/gdb/solib-svr4.c
+++ gdb-head/gdb/solib-svr4.c
@@ -140,9 +140,10 @@ static CORE_ADDR
 LM_ADDR_FROM_LINK_MAP (struct so_list *so)
 {
   struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
+  struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
 
   return extract_typed_address (so->lm_info->lm + lmo->l_addr_offset,
-				builtin_type_void_data_ptr);
+				ptr_type);
 }
 
 static int
@@ -157,9 +158,10 @@ static CORE_ADDR
 LM_DYNAMIC_FROM_LINK_MAP (struct so_list *so)
 {
   struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
+  struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
 
   return extract_typed_address (so->lm_info->lm + lmo->l_ld_offset,
-				builtin_type_void_data_ptr);
+				ptr_type);
 }
 
 static CORE_ADDR
@@ -236,24 +238,27 @@ static CORE_ADDR
 LM_NEXT (struct so_list *so)
 {
   struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
+  struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
 
   return extract_typed_address (so->lm_info->lm + lmo->l_next_offset,
-				builtin_type_void_data_ptr);
+				ptr_type);
 }
 
 static CORE_ADDR
 LM_NAME (struct so_list *so)
 {
   struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
+  struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
 
   return extract_typed_address (so->lm_info->lm + lmo->l_name_offset,
-				builtin_type_void_data_ptr);
+				ptr_type);
 }
 
 static int
 IGNORE_FIRST_LINK_MAP_ENTRY (struct so_list *so)
 {
   struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
+  struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
 
   /* Assume that everything is a library if the dynamic loader was loaded
      late by a static executable.  */
@@ -261,7 +266,7 @@ IGNORE_FIRST_LINK_MAP_ENTRY (struct so_l
     return 0;
 
   return extract_typed_address (so->lm_info->lm + lmo->l_prev_offset,
-				builtin_type_void_data_ptr) == 0;
+				ptr_type) == 0;
 }
 
 static CORE_ADDR debug_base;	/* Base of dynamic linker structures */
@@ -566,13 +571,14 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
 	    entry.  */
 	 if (ptr)
 	   {
+	     struct type *ptr_type;
 	     gdb_byte ptr_buf[8];
 	     CORE_ADDR ptr_addr;
 
+	     ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
 	     ptr_addr = dyn_addr + (buf - bufstart) + arch_size / 8;
 	     if (target_read_memory (ptr_addr, ptr_buf, arch_size / 8) == 0)
-	       dyn_ptr = extract_typed_address (ptr_buf,
-						builtin_type_void_data_ptr);
+	       dyn_ptr = extract_typed_address (ptr_buf, ptr_type);
 	     *ptr = dyn_ptr;
 	   }
 	 return 1;
@@ -672,14 +678,15 @@ elf_locate_base (void)
   if (scan_dyntag (DT_MIPS_RLD_MAP, exec_bfd, &dyn_ptr)
       || scan_dyntag_auxv (DT_MIPS_RLD_MAP, &dyn_ptr))
     {
+      struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
       gdb_byte *pbuf;
-      int pbuf_size = TYPE_LENGTH (builtin_type_void_data_ptr);
+      int pbuf_size = TYPE_LENGTH (ptr_type);
       pbuf = alloca (pbuf_size);
       /* DT_MIPS_RLD_MAP contains a pointer to the address
 	 of the dynamic link structure.  */
       if (target_read_memory (dyn_ptr, pbuf, pbuf_size))
 	return 0;
-      return extract_typed_address (pbuf, builtin_type_void_data_ptr);
+      return extract_typed_address (pbuf, ptr_type);
     }
 
   /* Find DT_DEBUG.  */
@@ -763,9 +770,9 @@ static CORE_ADDR
 solib_svr4_r_map (void)
 {
   struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
+  struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
 
-  return read_memory_typed_address (debug_base + lmo->r_map_offset,
-				    builtin_type_void_data_ptr);
+  return read_memory_typed_address (debug_base + lmo->r_map_offset, ptr_type);
 }
 
 /* Find r_brk from the inferior's debug base.  */
@@ -774,9 +781,9 @@ static CORE_ADDR
 solib_svr4_r_brk (void)
 {
   struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
+  struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
 
-  return read_memory_typed_address (debug_base + lmo->r_brk_offset,
-				    builtin_type_void_data_ptr);
+  return read_memory_typed_address (debug_base + lmo->r_brk_offset, ptr_type);
 }
 
 /* Find the link map for the dynamic linker (if it is not in the
@@ -786,6 +793,7 @@ static CORE_ADDR
 solib_svr4_r_ldsomap (void)
 {
   struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
+  struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
   ULONGEST version;
 
   /* Check version, and return zero if `struct r_debug' doesn't have
@@ -796,7 +804,7 @@ solib_svr4_r_ldsomap (void)
     return 0;
 
   return read_memory_typed_address (debug_base + lmo->r_ldsomap_offset,
-				    builtin_type_void_data_ptr);
+				    ptr_type);
 }
 
 /*
@@ -829,7 +837,8 @@ open_symbol_file_object (void *from_ttyp
   int errcode;
   int from_tty = *(int *)from_ttyp;
   struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
-  int l_name_size = TYPE_LENGTH (builtin_type_void_data_ptr);
+  struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
+  int l_name_size = TYPE_LENGTH (ptr_type);
   gdb_byte *l_name_buf = xmalloc (l_name_size);
   struct cleanup *cleanups = make_cleanup (xfree, l_name_buf);
 
@@ -851,7 +860,7 @@ open_symbol_file_object (void *from_ttyp
   read_memory (lm + lmo->l_name_offset, l_name_buf, l_name_size);
 
   /* Convert the address to host format.  */
-  l_name = extract_typed_address (l_name_buf, builtin_type_void_data_ptr);
+  l_name = extract_typed_address (l_name_buf, ptr_type);
 
   /* Free l_name_buf.  */
   do_cleanups (cleanups);

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]