Remove support for Solaris < 10 (PR gdb/22185)

Given that GCC has obsoleted/removed support for Solaris 9 in GCC 4.9/5 in 2013:

    https://gcc.gnu.org/gcc-4.9/changes.html
    https://gcc.gnu.org/ml/gcc-patches/2013-05/msg00728.html

and the last gdb version that can be compiled with gcc 4.9 is 7.12.1 only when
configured with --disable-build-with-cxx, it's time to obsolete/remove support
for Solaris < 10.

This patch does this, simplifying configure.nat along the way (only a single
sol2 configuration with variants for i386 and sparc).

Some configure checks for older Solaris versions can go, too, and the check
for libthread_db.so.1 removed:

* Since Solaris 10, dlopen has moved to libc and libdl.so is just a
  filter on ld.so.1, so no need to check.

* $RDYNAMIC is already handled above (and is a no-op with Solaris ld
  anyway).

Both proc-service.c and sol-thread.c lose support for (Solaris-only)
PROC_SERVICE_IS_OLD.

The attached revised patch has been tested on sparcv9-sun-solaris2.10,
sparcv9-sun-solaris2.11.4, amd64-pc-solaris2.10, amd64-pc-solaris2.11.4,
and x86_64-pc-linux-gnu.

I've also started an i386-pc-solaris2.9 build to check that it really
stops as expected.

	PR gdb/22185
	* configure.host <*-*-solaris2.[01], *-*-solaris2.[2-9]*>: Mark as
	obsolete.
	Use gdb_host sol2 for i[34567]86-*-solaris2*, x86_64-*-solaris2*.
	Remove i386sol2 support.
	* configure.nat <i386sol2>: Remove.
	<sol2-64>: Fold into ...
	<sol2>: ... this.
	Move common settings to default section.
	Add sol-thread.o.
	* configure.tgt <i[34567]86-*-solaris2.1[0-9]*,
	x86_64-*-solaris2.1[0-9]*>: Rename to ...
	<i[34567]86-*-solaris2*, x86_64-*-solaris2*>: ... this.
	<i[34567]86-*-solaris*>: Remove.
	<sparc-*-solaris2.[0-6], sparc-*-solaris2.[0-6].*>: Remove.

	* configure.ac: Remove wctype in libw check.
	(_MSE_INT_H): Don't define on Solaris 7-9.
	<solaris*>: Remove libthread_db.so.1 check.
	* configure: Regenerate.
	* config.in: Regenerate.

	* proc-service.c: Remove PROC_SERVICE_IS_OLD handling.
	(gdb_ps_prochandle_t, gdb_ps_read_buf_t, gdb_ps_write_buf_t)
	(gdb_ps_size_t): Remove.
	Use base types in users.
	* sol-thread.c: Likewise, also for gdb_ps_addr_t.

	* NEWS (Changes since GDB 8.0): Document Solaris 2.0-9 removal.
This commit is contained in:
Rainer Orth 2017-09-26 15:19:10 +02:00
parent 39b06c208f
commit 281c444773
10 changed files with 83 additions and 364 deletions

View File

@ -1,3 +1,35 @@
2017-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR gdb/22185
* configure.host <*-*-solaris2.[01], *-*-solaris2.[2-9]*>: Mark as
obsolete.
Use gdb_host sol2 for i[34567]86-*-solaris2*, x86_64-*-solaris2*.
Remove i386sol2 support.
* configure.nat <i386sol2>: Remove.
<sol2-64>: Fold into ...
<sol2>: ... this.
Move common settings to default section.
Add sol-thread.o.
* configure.tgt <i[34567]86-*-solaris2.1[0-9]*,
x86_64-*-solaris2.1[0-9]*>: Rename to ...
<i[34567]86-*-solaris2*, x86_64-*-solaris2*>: ... this.
<i[34567]86-*-solaris*>: Remove.
<sparc-*-solaris2.[0-6], sparc-*-solaris2.[0-6].*>: Remove.
* configure.ac: Remove wctype in libw check.
(_MSE_INT_H): Don't define on Solaris 7-9.
<solaris*>: Remove libthread_db.so.1 check.
* configure: Regenerate.
* config.in: Regenerate.
* proc-service.c: Remove PROC_SERVICE_IS_OLD handling.
(gdb_ps_prochandle_t, gdb_ps_read_buf_t, gdb_ps_write_buf_t)
(gdb_ps_size_t): Remove.
Use base types in users.
* sol-thread.c: Likewise, also for gdb_ps_addr_t.
* NEWS (Changes since GDB 8.0): Document Solaris 2.0-9 removal.
2017-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR build/22206

View File

@ -118,6 +118,10 @@ FreeBSD/aarch64 aarch64*-*-freebsd*
FreeBSD/aarch64 aarch64*-*-freebsd*
* Removed targets and native configurations
Solaris 2.0-9 i?86-*-solaris2.[0-9], sparc*-*-solaris2.[0-9]
*** Changes in GDB 8.0
* GDB now supports access to the PKU register on GNU/Linux. The register is

View File

@ -231,9 +231,6 @@
/* Define if you have the babeltrace library. */
#undef HAVE_LIBBABELTRACE
/* Define to 1 if you have the `dl' library (-ldl). */
#undef HAVE_LIBDL
/* Define if you have the expat library. */
#undef HAVE_LIBEXPAT
@ -267,9 +264,6 @@
/* Define to 1 if you have the <libunwind-ia64.h> header file. */
#undef HAVE_LIBUNWIND_IA64_H
/* Define to 1 if you have the `w' library (-lw). */
#undef HAVE_LIBW
/* Define to 1 if you have the <linux/perf_event.h> header file. */
#undef HAVE_LINUX_PERF_EVENT_H
@ -567,9 +561,6 @@
/* Define to 1 if you have the <thread_db.h> header file. */
#undef HAVE_THREAD_DB_H
/* Define if using Solaris thread debugging. */
#undef HAVE_THREAD_DB_LIB
/* Define to 1 if you have the `ttrace' function. */
#undef HAVE_TTRACE
@ -667,10 +658,6 @@
/* Define to 1 if the "%ll" format works to print long longs. */
#undef PRINTF_HAS_LONG_LONG
/* Define if <proc_service.h> on solaris uses int instead of size_t, and
assorted other type changes. */
#undef PROC_SERVICE_IS_OLD
/* Define to the type of arg 1 for ptrace. */
#undef PTRACE_TYPE_ARG1
@ -810,10 +797,6 @@
/* Define to 1 if on MINIX. */
#undef _MINIX
/* Define to 1 to avoid a clash between <widec.h> and <wchar.h> on Solaris
2.[789] when using GCC. */
#undef _MSE_INT_H
/* Define to 2 if the system does not provide POSIX.1 features except with
this defined. */
#undef _POSIX_1_SOURCE

172
gdb/configure vendored
View File

@ -7723,62 +7723,6 @@ _ACEOF
fi
# We need to link with -lw to get `wctype' on Solaris before Solaris
# 2.6. Solaris 2.6 and beyond have this function in libc, and have a
# libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
# is known to have this problem). Therefore we avoid libw if we can.
ac_fn_c_check_func "$LINENO" "wctype" "ac_cv_func_wctype"
if test "x$ac_cv_func_wctype" = x""yes; then :
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype in -lw" >&5
$as_echo_n "checking for wctype in -lw... " >&6; }
if test "${ac_cv_lib_w_wctype+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lw $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char wctype ();
int
main ()
{
return wctype ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_w_wctype=yes
else
ac_cv_lib_w_wctype=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_w_wctype" >&5
$as_echo "$ac_cv_lib_w_wctype" >&6; }
if test "x$ac_cv_lib_w_wctype" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBW 1
_ACEOF
LIBS="-lw $LIBS"
fi
fi
# Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5
$as_echo_n "checking for library containing gethostbyname... " >&6; }
@ -11651,17 +11595,6 @@ fi
done
# On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
# between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
# think that we don't have <curses.h> if we're using GCC.
case $host_os in
solaris2.[789])
if test "$GCC" = yes; then
$as_echo "#define _MSE_INT_H 1" >>confdefs.h
fi ;;
esac
for ac_header in curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
@ -14681,111 +14614,6 @@ $as_echo "$found" >&6; }
if test ${build} = ${host} -a ${host} = ${target} ; then
case ${host_os} in
solaris*)
# See if thread_db library is around for Solaris thread debugging.
# Note that we must explicitly test for version 1 of the library
# because version 0 (present on Solaris 2.4 or earlier) doesn't have
# the same API.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris thread debugging library" >&5
$as_echo_n "checking for Solaris thread debugging library... " >&6; }
if test -f /usr/lib/libthread_db.so.1 ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
$as_echo "#define HAVE_THREAD_DB_LIB 1" >>confdefs.h
CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
$as_echo_n "checking for dlopen in -ldl... " >&6; }
if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char dlopen ();
int
main ()
{
return dlopen ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_dl_dlopen=yes
else
ac_cv_lib_dl_dlopen=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBDL 1
_ACEOF
LIBS="-ldl $LIBS"
fi
CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC"
# Sun randomly tweaked the prototypes in <proc_service.h>
# at one point.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if <proc_service.h> is old" >&5
$as_echo_n "checking if <proc_service.h> is old... " >&6; }
if test "${gdb_cv_proc_service_is_old+set}" = set; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <proc_service.h>
ps_err_e ps_pdwrite
(struct ps_prochandle*, psaddr_t, const void*, size_t);
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
gdb_cv_proc_service_is_old=no
else
gdb_cv_proc_service_is_old=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_proc_service_is_old" >&5
$as_echo "$gdb_cv_proc_service_is_old" >&6; }
if test $gdb_cv_proc_service_is_old = yes; then
$as_echo "#define PROC_SERVICE_IS_OLD 1" >>confdefs.h
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
;;
aix*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AiX thread debugging library" >&5
$as_echo_n "checking for AiX thread debugging library... " >&6; }

View File

@ -508,13 +508,6 @@ esac
# We might need to link with -lm; most simulators need it.
AC_CHECK_LIB(m, main)
# We need to link with -lw to get `wctype' on Solaris before Solaris
# 2.6. Solaris 2.6 and beyond have this function in libc, and have a
# libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
# is known to have this problem). Therefore we avoid libw if we can.
AC_CHECK_FUNC(wctype, [],
[AC_CHECK_LIB(w, wctype)])
# Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
AC_SEARCH_LIBS(gethostbyname, nsl)
@ -1308,17 +1301,6 @@ AC_CHECK_HEADERS(sys/user.h, [], [],
#endif
])
# On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
# between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
# think that we don't have <curses.h> if we're using GCC.
case $host_os in
solaris2.[[789]])
if test "$GCC" = yes; then
AC_DEFINE(_MSE_INT_H, 1,
[Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
Solaris 2.[789] when using GCC. ])
fi ;;
esac
AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h)
AC_CHECK_HEADERS(term.h, [], [],
[#if HAVE_CURSES_H
@ -1769,41 +1751,6 @@ dnl and not doing a canadian cross build (build == host).
if test ${build} = ${host} -a ${host} = ${target} ; then
case ${host_os} in
solaris*)
# See if thread_db library is around for Solaris thread debugging.
# Note that we must explicitly test for version 1 of the library
# because version 0 (present on Solaris 2.4 or earlier) doesn't have
# the same API.
AC_MSG_CHECKING(for Solaris thread debugging library)
if test -f /usr/lib/libthread_db.so.1 ; then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
[Define if using Solaris thread debugging.])
CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
AC_CHECK_LIB(dl, dlopen)
CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC"
# Sun randomly tweaked the prototypes in <proc_service.h>
# at one point.
AC_MSG_CHECKING(if <proc_service.h> is old)
AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
AC_TRY_COMPILE([
#include <proc_service.h>
ps_err_e ps_pdwrite
(struct ps_prochandle*, psaddr_t, const void*, size_t);
],, gdb_cv_proc_service_is_old=no,
gdb_cv_proc_service_is_old=yes)
])
AC_MSG_RESULT($gdb_cv_proc_service_is_old)
if test $gdb_cv_proc_service_is_old = yes; then
AC_DEFINE(PROC_SERVICE_IS_OLD, 1,
[Define if <proc_service.h> on solaris uses int instead of
size_t, and assorted other type changes.])
fi
else
AC_MSG_RESULT(no)
fi
;;
aix*)
AC_MSG_CHECKING(for AiX thread debugging library)
AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,

View File

@ -20,6 +20,7 @@ case $host in
vax-*-netbsdelf*)
;;
*-*-irix* | \
*-*-solaris2.[01] | *-*-solaris2.[2-9]* | \
alpha*-*-osf* | \
alpha*-*-freebsd* | \
alpha*-*-kfreebsd*-gnu | \
@ -113,9 +114,8 @@ i[34567]86-*-linux*) gdb_host=linux ;;
i[34567]86-*-gnu*) gdb_host=i386gnu ;;
i[3456]86-*-nto*) gdb_host=nto ;;
i[34567]86-*-openbsd*) gdb_host=obsd ;;
i[34567]86-*-solaris2.1[0-9]* | x86_64-*-solaris2.1[0-9]*)
gdb_host=sol2-64 ;;
i[34567]86-*-solaris*) gdb_host=i386sol2 ;;
i[34567]86-*-solaris2* | x86_64-*-solaris2*)
gdb_host=sol2 ;;
i[34567]86-*-cygwin*) gdb_host=cygwin ;;
ia64-*-linux*) gdb_host=linux ;;

View File

@ -85,6 +85,12 @@ case ${gdb_host} in
darwin)
NATDEPFILES='fork-child.o fork-inferior.o darwin-nat.o \
darwin-nat-info.o'
;;
sol2)
NATDEPFILES='fork-child.o fork-inferior.o \
procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o \
sol-thread.o'
HAVE_NATIVE_GCORE_HOST=1
;;
esac
@ -212,17 +218,6 @@ case ${gdb_host} in
;;
esac
;;
i386sol2)
case ${gdb_host_cpu} in
i386)
# Host: Solaris x86
NATDEPFILES='fork-child.o fork-inferior.o \
i386-v4-nat.o i386-sol2-nat.o \
procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o'
HAVE_NATIVE_GCORE_HOST=1
;;
esac
;;
linux)
case ${gdb_host_cpu} in
aarch64)
@ -461,24 +456,15 @@ case ${gdb_host} in
;;
sol2)
case ${gdb_host_cpu} in
i386)
# Host: Solaris x86_64
NATDEPFILES="${NATDEPFILES} \
amd64-nat.o i386-v4-nat.o i386-sol2-nat.o"
;;
sparc)
# Host: Solaris SPARC & UltraSPARC
NAT_FILE='nm-sol2.h'
NATDEPFILES='sparc-sol2-nat.o \
fork-child.o fork-inferior.o \
procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o'
HAVE_NATIVE_GCORE_HOST=1
;;
esac
;;
sol2-64)
case ${gdb_host_cpu} in
i386)
# Host: Solaris x86_64
NATDEPFILES='fork-child.o fork-inferior.o \
amd64-nat.o i386-v4-nat.o i386-sol2-nat.o \
procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o'
HAVE_NATIVE_GCORE_HOST=1
NATDEPFILES="${NATDEPFILES} sparc-sol2-nat.o"
;;
esac
;;

View File

@ -223,17 +223,12 @@ i[34567]86-*-nto*)
i386-nto-tdep.o nto-tdep.o"
build_gdbserver=yes
;;
i[34567]86-*-solaris2.1[0-9]* | x86_64-*-solaris2.1[0-9]*)
i[34567]86-*-solaris2* | x86_64-*-solaris2*)
# Target: Solaris x86_64
gdb_target_obs="i386-tdep.o i386.o i387-tdep.o amd64-tdep.o amd64.o \
amd64-sol2-tdep.o i386-sol2-tdep.o sol2-tdep.o \
solib-svr4.o"
;;
i[34567]86-*-solaris*)
# Target: Solaris x86
gdb_target_obs="i386-tdep.o i387-tdep.o i386-sol2-tdep.o sol2-tdep.o \
i386.o solib-svr4.o"
;;
i[34567]86-*-linux*)
# Target: Intel 386 running GNU/Linux
gdb_target_obs="i386-tdep.o i386.o i386-linux-tdep.o \
@ -591,12 +586,6 @@ sparc64-*-openbsd*)
nbsd-tdep.o obsd-tdep.o bsd-uthread.o solib-svr4.o \
ravenscar-thread.o sparc-ravenscar-thread.o"
;;
sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
# Target: Solaris SPARC
gdb_target_obs="sparc-tdep.o sparc-sol2-tdep.o sol2-tdep.o \
solib-svr4.o \
ravenscar-thread.o sparc-ravenscar-thread.o"
;;
sparc-*-solaris2* | sparcv9-*-solaris2* | sparc64-*-solaris2*)
# Target: Solaris UltraSPARC
gdb_target_obs="sparc64-tdep.o sparc64-sol2-tdep.o sparc-tdep.o \

View File

@ -34,24 +34,6 @@
#include "gregset.h"
/* Fix-up some broken systems. */
/* The prototypes in <proc_service.h> are slightly different on older
systems. Compensate for the discrepancies. */
#ifdef PROC_SERVICE_IS_OLD
typedef const struct ps_prochandle *gdb_ps_prochandle_t;
typedef char *gdb_ps_read_buf_t;
typedef char *gdb_ps_write_buf_t;
typedef int gdb_ps_size_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;
#endif
/* Helper functions. */
/* Convert a psaddr_t to a CORE_ADDR. */
@ -107,7 +89,7 @@ ps_xfer_memory (const struct ps_prochandle *ph, psaddr_t addr,
symbol is stored in SYM_ADDR. */
ps_err_e
ps_pglobal_lookup (gdb_ps_prochandle_t ph, const char *obj,
ps_pglobal_lookup (struct ps_prochandle *ph, const char *obj,
const char *name, psaddr_t *sym_addr)
{
struct inferior *inf = find_inferior_ptid (ph->ptid);
@ -129,8 +111,7 @@ ps_pglobal_lookup (gdb_ps_prochandle_t ph, const char *obj,
them into BUF. */
ps_err_e
ps_pdread (gdb_ps_prochandle_t ph, psaddr_t addr,
gdb_ps_read_buf_t buf, gdb_ps_size_t size)
ps_pdread (struct ps_prochandle *ph, psaddr_t addr, void *buf, size_t size)
{
return ps_xfer_memory (ph, addr, (gdb_byte *) buf, size, 0);
}
@ -138,8 +119,8 @@ ps_pdread (gdb_ps_prochandle_t ph, psaddr_t addr,
/* Write SIZE bytes from BUF into the target process PH at address ADDR. */
ps_err_e
ps_pdwrite (gdb_ps_prochandle_t ph, psaddr_t addr,
gdb_ps_write_buf_t buf, gdb_ps_size_t size)
ps_pdwrite (struct ps_prochandle *ph, psaddr_t addr,
const void *buf, size_t size)
{
return ps_xfer_memory (ph, addr, (gdb_byte *) buf, size, 1);
}
@ -148,7 +129,7 @@ ps_pdwrite (gdb_ps_prochandle_t ph, psaddr_t addr,
and store them in GREGSET. */
ps_err_e
ps_lgetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, prgregset_t gregset)
ps_lgetregs (struct ps_prochandle *ph, lwpid_t lwpid, prgregset_t gregset)
{
ptid_t ptid = ptid_build (ptid_get_pid (ph->ptid), lwpid, 0);
struct regcache *regcache
@ -164,7 +145,7 @@ ps_lgetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, prgregset_t gregset)
from GREGSET. */
ps_err_e
ps_lsetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, const prgregset_t gregset)
ps_lsetregs (struct ps_prochandle *ph, lwpid_t lwpid, const prgregset_t gregset)
{
ptid_t ptid = ptid_build (ptid_get_pid (ph->ptid), lwpid, 0);
struct regcache *regcache
@ -180,8 +161,7 @@ ps_lsetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, const prgregset_t gregset)
process PH and store them in FPREGSET. */
ps_err_e
ps_lgetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
gdb_prfpregset_t *fpregset)
ps_lgetfpregs (struct ps_prochandle *ph, lwpid_t lwpid, gdb_prfpregset_t *fpregset)
{
ptid_t ptid = ptid_build (ptid_get_pid (ph->ptid), lwpid, 0);
struct regcache *regcache
@ -197,7 +177,7 @@ ps_lgetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
process PH from FPREGSET. */
ps_err_e
ps_lsetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
ps_lsetfpregs (struct ps_prochandle *ph, lwpid_t lwpid,
const gdb_prfpregset_t *fpregset)
{
ptid_t ptid = ptid_build (ptid_get_pid (ph->ptid), lwpid, 0);
@ -214,7 +194,7 @@ ps_lsetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
-- not used on Solaris. */
pid_t
ps_getpid (gdb_ps_prochandle_t ph)
ps_getpid (struct ps_prochandle *ph)
{
return ptid_get_pid (ph->ptid);
}

View File

@ -700,34 +700,6 @@ sol_thread_alive (struct target_ops *ops, ptid_t ptid)
/* These routines implement the lower half of the thread_db interface,
i.e. the ps_* routines. */
/* Various versions of <proc_service.h> have slightly different
function prototypes. In particular, we have
NEWER OLDER
struct ps_prochandle * const struct ps_prochandle *
void* char*
const void* char*
int size_t
Which one you have depends on the Solaris version and what patches
you've applied. On the theory that there are only two major
variants, we have configure check the prototype of ps_pdwrite (),
and use that info to make appropriate typedefs here. */
#ifdef PROC_SERVICE_IS_OLD
typedef const struct ps_prochandle *gdb_ps_prochandle_t;
typedef char *gdb_ps_read_buf_t;
typedef char *gdb_ps_write_buf_t;
typedef int gdb_ps_size_t;
typedef psaddr_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
/* The next four routines are called by libthread_db to tell us to
stop and stop a particular process or lwp. Since GDB ensures that
these are all stopped by the time we call anything in thread_db,
@ -736,7 +708,7 @@ typedef psaddr_t gdb_ps_addr_t;
/* Process stop. */
ps_err_e
ps_pstop (gdb_ps_prochandle_t ph)
ps_pstop (struct ps_prochandle *ph)
{
return PS_OK;
}
@ -744,7 +716,7 @@ ps_pstop (gdb_ps_prochandle_t ph)
/* Process continue. */
ps_err_e
ps_pcontinue (gdb_ps_prochandle_t ph)
ps_pcontinue (struct ps_prochandle *ph)
{
return PS_OK;
}
@ -752,7 +724,7 @@ ps_pcontinue (gdb_ps_prochandle_t ph)
/* LWP stop. */
ps_err_e
ps_lstop (gdb_ps_prochandle_t ph, lwpid_t lwpid)
ps_lstop (struct ps_prochandle *ph, lwpid_t lwpid)
{
return PS_OK;
}
@ -760,7 +732,7 @@ ps_lstop (gdb_ps_prochandle_t ph, lwpid_t lwpid)
/* LWP continue. */
ps_err_e
ps_lcontinue (gdb_ps_prochandle_t ph, lwpid_t lwpid)
ps_lcontinue (struct ps_prochandle *ph, lwpid_t lwpid)
{
return PS_OK;
}
@ -768,8 +740,8 @@ ps_lcontinue (gdb_ps_prochandle_t ph, lwpid_t lwpid)
/* Looks up the symbol LD_SYMBOL_NAME in the debugger's symbol table. */
ps_err_e
ps_pglobal_lookup (gdb_ps_prochandle_t ph, const char *ld_object_name,
const char *ld_symbol_name, gdb_ps_addr_t *ld_symbol_addr)
ps_pglobal_lookup (struct ps_prochandle *ph, const char *ld_object_name,
const char *ld_symbol_name, psaddr_t *ld_symbol_addr)
{
struct bound_minimal_symbol ms;
@ -784,7 +756,7 @@ ps_pglobal_lookup (gdb_ps_prochandle_t ph, const char *ld_object_name,
/* Common routine for reading and writing memory. */
static ps_err_e
rw_common (int dowrite, const struct ps_prochandle *ph, gdb_ps_addr_t addr,
rw_common (int dowrite, const struct ps_prochandle *ph, psaddr_t addr,
gdb_byte *buf, int size)
{
int ret;
@ -819,8 +791,7 @@ rw_common (int dowrite, const struct ps_prochandle *ph, gdb_ps_addr_t addr,
/* Copies SIZE bytes from target process .data segment to debugger memory. */
ps_err_e
ps_pdread (gdb_ps_prochandle_t ph, gdb_ps_addr_t addr,
gdb_ps_read_buf_t buf, gdb_ps_size_t size)
ps_pdread (struct ps_prochandle *ph, psaddr_t addr, void *buf, size_t size)
{
return rw_common (0, ph, addr, (gdb_byte *) buf, size);
}
@ -828,8 +799,8 @@ ps_pdread (gdb_ps_prochandle_t ph, gdb_ps_addr_t addr,
/* Copies SIZE bytes from debugger memory .data segment to target process. */
ps_err_e
ps_pdwrite (gdb_ps_prochandle_t ph, gdb_ps_addr_t addr,
gdb_ps_write_buf_t buf, gdb_ps_size_t size)
ps_pdwrite (struct ps_prochandle *ph, psaddr_t addr,
const void *buf, size_t size)
{
return rw_common (1, ph, addr, (gdb_byte *) buf, size);
}
@ -837,8 +808,7 @@ ps_pdwrite (gdb_ps_prochandle_t ph, gdb_ps_addr_t addr,
/* Copies SIZE bytes from target process .text segment to debugger memory. */
ps_err_e
ps_ptread (gdb_ps_prochandle_t ph, gdb_ps_addr_t addr,
gdb_ps_read_buf_t buf, gdb_ps_size_t size)
ps_ptread (struct ps_prochandle *ph, psaddr_t addr, void *buf, size_t size)
{
return rw_common (0, ph, addr, (gdb_byte *) buf, size);
}
@ -846,8 +816,8 @@ ps_ptread (gdb_ps_prochandle_t ph, gdb_ps_addr_t addr,
/* Copies SIZE bytes from debugger memory .text segment to target process. */
ps_err_e
ps_ptwrite (gdb_ps_prochandle_t ph, gdb_ps_addr_t addr,
gdb_ps_write_buf_t buf, gdb_ps_size_t size)
ps_ptwrite (struct ps_prochandle *ph, psaddr_t addr,
const void *buf, size_t size)
{
return rw_common (1, ph, addr, (gdb_byte *) buf, size);
}
@ -855,7 +825,7 @@ ps_ptwrite (gdb_ps_prochandle_t ph, gdb_ps_addr_t addr,
/* Get general-purpose registers for LWP. */
ps_err_e
ps_lgetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, prgregset_t gregset)
ps_lgetregs (struct ps_prochandle *ph, lwpid_t lwpid, prgregset_t gregset)
{
ptid_t ptid = ptid_build (ptid_get_pid (inferior_ptid), lwpid, 0);
struct regcache *regcache
@ -870,7 +840,7 @@ ps_lgetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, prgregset_t gregset)
/* Set general-purpose registers for LWP. */
ps_err_e
ps_lsetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
ps_lsetregs (struct ps_prochandle *ph, lwpid_t lwpid,
const prgregset_t gregset)
{
ptid_t ptid = ptid_build (ptid_get_pid (inferior_ptid), lwpid, 0);
@ -898,7 +868,7 @@ ps_plog (const char *fmt, ...)
/* Get size of extra register set. Currently a noop. */
ps_err_e
ps_lgetxregsize (gdb_ps_prochandle_t ph, lwpid_t lwpid, int *xregsize)
ps_lgetxregsize (struct ps_prochandle *ph, lwpid_t lwpid, int *xregsize)
{
return PS_OK;
}
@ -906,7 +876,7 @@ ps_lgetxregsize (gdb_ps_prochandle_t ph, lwpid_t lwpid, int *xregsize)
/* Get extra register set. Currently a noop. */
ps_err_e
ps_lgetxregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, caddr_t xregset)
ps_lgetxregs (struct ps_prochandle *ph, lwpid_t lwpid, caddr_t xregset)
{
return PS_OK;
}
@ -914,7 +884,7 @@ ps_lgetxregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, caddr_t xregset)
/* Set extra register set. Currently a noop. */
ps_err_e
ps_lsetxregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, caddr_t xregset)
ps_lsetxregs (struct ps_prochandle *ph, lwpid_t lwpid, caddr_t xregset)
{
return PS_OK;
}
@ -922,7 +892,7 @@ ps_lsetxregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, caddr_t xregset)
/* Get floating-point registers for LWP. */
ps_err_e
ps_lgetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
ps_lgetfpregs (struct ps_prochandle *ph, lwpid_t lwpid,
prfpregset_t *fpregset)
{
ptid_t ptid = ptid_build (ptid_get_pid (inferior_ptid), lwpid, 0);
@ -938,7 +908,7 @@ ps_lgetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
/* Set floating-point regs for LWP. */
ps_err_e
ps_lsetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
ps_lsetfpregs (struct ps_prochandle *ph, lwpid_t lwpid,
const prfpregset_t * fpregset)
{
ptid_t ptid = ptid_build (ptid_get_pid (inferior_ptid), lwpid, 0);
@ -957,7 +927,7 @@ ps_lsetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
(e.g. procfs) method, but this ought to work. */
ps_err_e
ps_pdmodel (gdb_ps_prochandle_t ph, int *data_model)
ps_pdmodel (struct ps_prochandle *ph, int *data_model)
{
if (exec_bfd == 0)
*data_model = PR_MODEL_UNKNOWN;
@ -978,7 +948,7 @@ ps_pdmodel (gdb_ps_prochandle_t ph, int *data_model)
of libthread_db would fail because of ps_lgetLDT being undefined. */
ps_err_e
ps_lgetLDT (gdb_ps_prochandle_t ph, lwpid_t lwpid,
ps_lgetLDT (struct ps_prochandle *ph, lwpid_t lwpid,
struct ssd *pldt)
{
/* NOTE: only used on Solaris, therefore OK to refer to procfs.c. */