diff options
-rw-r--r-- | gdb/ChangeLog | 13 | ||||
-rw-r--r-- | gdb/config/pa/nm-hppah.h | 9 | ||||
-rw-r--r-- | gdb/doc/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/doc/gdbint.texinfo | 5 | ||||
-rw-r--r-- | gdb/exec.c | 34 | ||||
-rw-r--r-- | gdb/hppah-nat.c | 24 |
6 files changed, 49 insertions, 41 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 734c8ae..6e58854 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,18 @@ 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. * defs.h (align_up, align_down): Declare. * ppc-sysv-tdep.c (align_up, align_down): Delete functions. diff --git a/gdb/config/pa/nm-hppah.h b/gdb/config/pa/nm-hppah.h index 29a52df..bf4fd3c 100644 --- a/gdb/config/pa/nm-hppah.h +++ b/gdb/config/pa/nm-hppah.h @@ -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 diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index b471806..18b31b8 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -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 diff --git a/gdb/doc/gdbint.texinfo b/gdb/doc/gdbint.texinfo index e58bab4..537965b 100644 --- a/gdb/doc/gdbint.texinfo +++ b/gdb/doc/gdbint.texinfo @@ -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.) @@ -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 (); diff --git a/gdb/hppah-nat.c b/gdb/hppah-nat.c index 5359949..28ec350 100644 --- a/gdb/hppah-nat.c +++ b/gdb/hppah-nat.c @@ -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 |