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.
+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
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
/* 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
/* 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
/* 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
/* 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
/* 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
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; }
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`
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; }
# 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)
#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
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,
vax-*-netbsdelf*)
;;
*-*-irix* | \
+ *-*-solaris2.[01] | *-*-solaris2.[2-9]* | \
alpha*-*-osf* | \
alpha*-*-freebsd* | \
alpha*-*-kfreebsd*-gnu | \
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 ;;
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
;;
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)
;;
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
;;
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 \
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 \
#include "gregset.h"
\f
-/* 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
-\f
-
/* Helper functions. */
/* Convert a psaddr_t to a CORE_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);
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);
}
/* 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);
}
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
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
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
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);
-- 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);
}
/* 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,
/* Process stop. */
ps_err_e
-ps_pstop (gdb_ps_prochandle_t ph)
+ps_pstop (struct ps_prochandle *ph)
{
return PS_OK;
}
/* Process continue. */
ps_err_e
-ps_pcontinue (gdb_ps_prochandle_t ph)
+ps_pcontinue (struct ps_prochandle *ph)
{
return PS_OK;
}
/* 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;
}
/* 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;
}
/* 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;
/* 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;
/* 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);
}
/* 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);
}
/* 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);
}
/* 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);
}
/* 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
/* 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);
/* 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;
}
/* 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;
}
/* 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;
}
/* 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);
/* 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);
(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;
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. */