2003-09-19 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.

2003-09-19  Andrew Cagney  <cagney@redhat.com>

	* gdbint.texinfo (Target Architecture Definition): Delete
	documentation for NEED_TEXT_START_END.
This commit is contained in:
Andrew Cagney 2003-09-19 20:09:45 +00:00
parent f6f87075ea
commit b9fbf4340a
6 changed files with 49 additions and 41 deletions

View File

@ -1,3 +1,16 @@
2003-09-19 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.
2003-09-19 Andrew Cagney <cagney@redhat.com>
* utils.c (align_up, align_down): New functions.

View File

@ -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

View File

@ -1,3 +1,8 @@
2003-09-19 Andrew Cagney <cagney@redhat.com>
* gdbint.texinfo (Target Architecture Definition): Delete
documentation for NEED_TEXT_START_END.
2003-09-18 Andrew Cagney <cagney@redhat.com>
* gdbint.texinfo (Target Architecture Definition): Delete

View File

@ -3483,11 +3483,6 @@ method like @code{INTEGER_TO_ADDRESS} certainly makes it possible for
@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.)

View File

@ -85,13 +85,6 @@ bfd *exec_bfd = NULL;
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 @@ exec_file_attach (char *filename, int from_tty)
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 ();

View File

@ -34,14 +34,34 @@
#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);
void