This is the mail archive of the gdb-patches@sources.redhat.com 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]

[patch/rfc, rfa:doco] Deprecate NEED_TEXT_START_END


Hello,

This patch boots the NEED_TEXT_START_END code out of "exec.c" and into HP/UX native. "exec.c" now calls DEPRECATED_HPUX_TEXT_END() when defined.

Note that I've not built this on HP/UX.
Eli, is the removal of the now defunct NEED_TEXT_START_END ok?

It should go in in a few days,
Andrew
2003-09-14  Andrew Cagney  <cagney@redhat.com>

	* config/pa/nm-hppah.h (NEED_TEXT_START_END): Delete.
	(DEPRECATED_HPUX_TEXT_END): Define.
	(deprecated_hpux_text_end): Declare.
	(struct target_ops): Declare opaque.
	* hppah-nat.c (text_end): Make static.
	(deprecated_hpux_text_end): New function.
	* exec.c (text_end): Delete global variable.
	(NEED_TEXT_START_END): Do not define.
	(exec_file_attach): Replace code computing "text_end" code with
	call to DEPRECATED_HPUX_TEXT_END.

Index: doc/ChangeLog
2003-09-14  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	documentation for NEED_TEXT_START_END.

ndex: exec.c
===================================================================
RCS file: /cvs/src/src/gdb/exec.c,v
retrieving revision 1.29
diff -u -r1.29 exec.c
--- exec.c	3 Sep 2003 21:01:44 -0000	1.29
+++ exec.c	14 Sep 2003 17:19:19 -0000
@@ -85,13 +85,6 @@
 
 int write_files = 0;
 
-/* Text start and end addresses (KLUDGE) if needed */
-
-#ifndef NEED_TEXT_START_END
-#define NEED_TEXT_START_END (0)
-#endif
-CORE_ADDR text_end = 0;
-
 struct vmap *vmap;
 
 void
@@ -266,30 +259,9 @@
 		 scratch_pathname, bfd_errmsg (bfd_get_error ()));
 	}
 
-      /* text_end is sometimes used for where to put call dummies.  A
-         few ports use these for other purposes too.  */
-      if (NEED_TEXT_START_END)
-	{
-	  struct section_table *p;
-
-	  /* Set text_start to the lowest address of the start of any
-	     readonly code section and set text_end to the highest
-	     address of the end of any readonly code section.  */
-	  /* FIXME: The comment above does not match the code.  The
-	     code checks for sections with are either code *or*
-	     readonly.  */
-	  CORE_ADDR text_start = ~(CORE_ADDR) 0;
-	  text_end = (CORE_ADDR) 0;
-	  for (p = exec_ops.to_sections; p < exec_ops.to_sections_end; p++)
-	    if (bfd_get_section_flags (p->bfd, p->the_bfd_section)
-		& (SEC_CODE | SEC_READONLY))
-	      {
-		if (text_start > p->addr)
-		  text_start = p->addr;
-		if (text_end < p->endaddr)
-		  text_end = p->endaddr;
-	      }
-	}
+#ifdef DEPRECATED_HPUX_TEXT_END
+      DEPRECATED_HPUX_TEXT_END (&exec_ops);
+#endif
 
       validate_files ();
 
Index: hppah-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/hppah-nat.c,v
retrieving revision 1.26
diff -u -r1.26 hppah-nat.c
--- hppah-nat.c	14 Sep 2003 16:32:12 -0000	1.26
+++ hppah-nat.c	14 Sep 2003 17:19:52 -0000
@@ -34,13 +34,33 @@
 #include "gdb_string.h"
 #include <signal.h>
 
-extern CORE_ADDR text_end;
-
 extern int hpux_has_forked (int pid, int *childpid);
 extern int hpux_has_vforked (int pid, int *childpid);
 extern int hpux_has_execd (int pid, char **execd_pathname);
 extern int hpux_has_syscall_event (int pid, enum target_waitkind *kind,
 				   int *syscall_id);
+
+static CORE_ADDR text_end;
+
+void
+deprecated_hpux_text_end (struct target_ops *exec_ops)
+{
+  struct section_table *p;
+
+  /* Set text_end to the highest address of the end of any readonly
+     code section.  */
+  /* FIXME: The comment above does not match the code.  The code
+     checks for sections with are either code *or* readonly.  */
+  text_end = (CORE_ADDR) 0;
+  for (p = exec_ops->to_sections; p < exec_ops->to_sections_end; p++)
+    if (bfd_get_section_flags (p->bfd, p->the_bfd_section)
+	& (SEC_CODE | SEC_READONLY))
+      {
+	if (text_end < p->endaddr)
+	  text_end = p->endaddr;
+      }
+}
+
 
 static void fetch_register (int);
 
Index: config/pa/nm-hppah.h
===================================================================
RCS file: /cvs/src/src/gdb/config/pa/nm-hppah.h,v
retrieving revision 1.16
diff -u -r1.16 nm-hppah.h
--- config/pa/nm-hppah.h	4 Sep 2003 18:04:25 -0000	1.16
+++ config/pa/nm-hppah.h	14 Sep 2003 17:19:52 -0000
@@ -19,6 +19,8 @@
    Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
+struct target_ops;
+
 #define U_REGS_OFFSET 0
 
 #define KERNEL_U_ADDR 0
@@ -44,9 +46,10 @@
 #define FIVE_ARG_PTRACE
 
 /* We need to figure out where the text region is so that we use the
-   appropriate ptrace operator to manipulate text.  Simply reading/writing
-   user space will crap out HPUX.  */
-#define NEED_TEXT_START_END 1
+   appropriate ptrace operator to manipulate text.  Simply
+   reading/writing user space will crap out HPUX.  */
+#define DEPRECATED_HPUX_TEXT_END deprecated_hpux_text_end
+extern void deprecated_hpux_text_end (struct target_ops *exec_ops);
 
 /* In hppah-nat.c: */
 #define FETCH_INFERIOR_REGISTERS
Index: doc/gdbint.texinfo
===================================================================
RCS file: /cvs/src/src/gdb/doc/gdbint.texinfo,v
retrieving revision 1.161
diff -u -r1.161 gdbint.texinfo
--- doc/gdbint.texinfo	13 Sep 2003 14:12:41 -0000	1.161
+++ doc/gdbint.texinfo	14 Sep 2003 17:21:19 -0000
@@ -3483,11 +3483,6 @@
 @xref{Target Architecture Definition, , Pointers Are Not Always
 Addresses}.
 
-@item NEED_TEXT_START_END
-@findex NEED_TEXT_START_END
-Define this if @value{GDBN} should determine the start and end addresses of the
-text section.  (Seems dubious.)
-
 @item NO_HIF_SUPPORT
 @findex NO_HIF_SUPPORT
 (Specific to the a29k.)

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