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:
parent
39b06c208f
commit
281c444773
@ -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
|
||||
|
4
gdb/NEWS
4
gdb/NEWS
@ -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
|
||||
|
@ -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
172
gdb/configure
vendored
@ -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; }
|
||||
|
@ -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,
|
||||
|
@ -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 ;;
|
||||
|
@ -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
|
||||
;;
|
||||
|
@ -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 \
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user