This is the mail archive of the
gdb-patches@sourceware.cygnus.com
mailing list for the GDB project.
Re: RFA: sol-thread.c: Fix for compilation problem on Solaris 2.5.x.
- To: "Peter.Schauer" <Peter dot Schauer at regent dot e-technik dot tu-muenchen dot de>
- Subject: Re: RFA: sol-thread.c: Fix for compilation problem on Solaris 2.5.x.
- From: Michael Snyder <msnyder at cygnus dot com>
- Date: Fri, 07 Apr 2000 09:48:44 -0700
- CC: gdb-patches at sourceware dot cygnus dot com
- Organization: Cygnus Solutions
- References: <200004071245.OAA01124@reglos.regent.e-technik.tu-muenchen.de>
- Reply-To: msnyder at cygnus dot com
Thank you Peter -- please check it in.
Peter.Schauer wrote:
>
> This change:
>
> 2000-03-23 Michael Snyder <msnyder@cleaver.cygnus.com>
>
> * sol-thread.c (ps_pglobal_lookup): Change argument type from
> paddr_t to psaddr_t. This mistake appears to date from an
> erroneous man page in Solaris 2.5 -- the correct type from the
> system headers has always been psaddr_t.
> (ps_pdread, ps_pdwrite, ps_ptread, ps_ptwrite): Ditto.
> (rw_common): Ditto.
>
> breaks GDB compilation on unpatched Solaris 2.5.x systems, which _do_ have
> a paddr_t argument type declaration in <proc_service.h>.
>
> IIRC the change from paddr_t to psaddr_t in <proc_service.h> is introduced
> via a Solaris 2.5.x linker `jumbo' patchset.
>
> Here is a fix:
>
> 2000-04-02 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
>
> * sol-thread.c (gdb_ps_addr_t): New typedef, depends on definition
> of PROC_SERVICE_IS_OLD.
> (ps_pglobal_lookup, ps_pdread, ps_pdwrite, ps_ptread, ps_ptwrite,
> rw_common): Change argument type from psaddr_t to gdb_ps_addr_t.
>
> --- gdb/sol-thread.c.orig Sun Apr 2 12:33:09 2000
> +++ gdb/sol-thread.c Sun Apr 2 14:19:11 2000
> @@ -995,11 +995,13 @@ typedef const struct ps_prochandle *gdb_
> typedef char *gdb_ps_read_buf_t;
> typedef char *gdb_ps_write_buf_t;
> typedef int gdb_ps_size_t;
> +typedef paddr_t gdb_ps_addr_t;
> #else
> typedef struct ps_prochandle *gdb_ps_prochandle_t;
> typedef void *gdb_ps_read_buf_t;
> typedef const void *gdb_ps_write_buf_t;
> typedef size_t gdb_ps_size_t;
> +typedef psaddr_t gdb_ps_addr_t;
> #endif
>
>
> @@ -1044,7 +1046,7 @@ ps_lcontinue (gdb_ps_prochandle_t ph, lw
>
> ps_err_e
> ps_pglobal_lookup (gdb_ps_prochandle_t ph, const char *ld_object_name,
> - const char *ld_symbol_name, psaddr_t * ld_symbol_addr)
> + const char *ld_symbol_name, gdb_ps_addr_t * ld_symbol_addr)
> {
> struct minimal_symbol *ms;
>
> @@ -1061,7 +1063,7 @@ ps_pglobal_lookup (gdb_ps_prochandle_t p
> /* Common routine for reading and writing memory. */
>
> static ps_err_e
> -rw_common (int dowrite, const struct ps_prochandle *ph, psaddr_t addr,
> +rw_common (int dowrite, const struct ps_prochandle *ph, gdb_ps_addr_t addr,
> char *buf, int size)
> {
> struct cleanup *old_chain;
> @@ -1105,7 +1107,7 @@ rw_common (int dowrite, const struct ps_
> /* Copies SIZE bytes from target process .data segment to debugger memory. */
>
> ps_err_e
> -ps_pdread (gdb_ps_prochandle_t ph, psaddr_t addr,
> +ps_pdread (gdb_ps_prochandle_t ph, gdb_ps_addr_t addr,
> gdb_ps_read_buf_t buf, gdb_ps_size_t size)
> {
> return rw_common (0, ph, addr, buf, size);
> @@ -1114,7 +1116,7 @@ ps_pdread (gdb_ps_prochandle_t ph, psadd
> /* Copies SIZE bytes from debugger memory .data segment to target process. */
>
> ps_err_e
> -ps_pdwrite (gdb_ps_prochandle_t ph, psaddr_t addr,
> +ps_pdwrite (gdb_ps_prochandle_t ph, gdb_ps_addr_t addr,
> gdb_ps_write_buf_t buf, gdb_ps_size_t size)
> {
> return rw_common (1, ph, addr, (char *) buf, size);
> @@ -1123,7 +1125,7 @@ ps_pdwrite (gdb_ps_prochandle_t ph, psad
> /* Copies SIZE bytes from target process .text segment to debugger memory. */
>
> ps_err_e
> -ps_ptread (gdb_ps_prochandle_t ph, psaddr_t addr,
> +ps_ptread (gdb_ps_prochandle_t ph, gdb_ps_addr_t addr,
> gdb_ps_read_buf_t buf, gdb_ps_size_t size)
> {
> return rw_common (0, ph, addr, buf, size);
> @@ -1132,7 +1134,7 @@ ps_ptread (gdb_ps_prochandle_t ph, psadd
> /* Copies SIZE bytes from debugger memory .text segment to target process. */
>
> ps_err_e
> -ps_ptwrite (gdb_ps_prochandle_t ph, psaddr_t addr,
> +ps_ptwrite (gdb_ps_prochandle_t ph, gdb_ps_addr_t addr,
> gdb_ps_write_buf_t buf, gdb_ps_size_t size)
> {
> return rw_common (1, ph, addr, (char *) buf, size);
>
> --
> Peter Schauer pes@regent.e-technik.tu-muenchen.de