* sol-thread.c (ps_pstop, etc): simple test for proc_service.h

version didn't work for sol2.6; pushed it to autoconf.
        * configure.in (gdb_cv_proc_service_is_old): new test.
        * acconfig.h (PROC_SERVICE_IS_OLD): new define.
        * configure, config.in: regenerate.
This commit is contained in:
Felix Lee 1998-10-14 01:15:01 +00:00
parent ad3b8c4a1a
commit 37f58dce03
6 changed files with 124 additions and 47 deletions

View File

@ -1,3 +1,11 @@
Tue Oct 13 18:56:51 1998 Felix Lee <flee@cygnus.com>
* sol-thread.c (ps_pstop, etc): simple test for proc_service.h
version didn't work for sol2.6; pushed it to autoconf.
* configure.in (gdb_cv_proc_service_is_old): new test.
* acconfig.h (PROC_SERVICE_IS_OLD): new define.
* configure, config.in: regenerate.
1998-10-13 Jason Molenda (jsm@bugshack.cygnus.com)
* blockframe.c (find_pc_sect_partial_function): Add braces to avoid

View File

@ -63,3 +63,7 @@
/* Define if your locale.h file contains LC_MESSAGES. */
#undef HAVE_LC_MESSAGES
/* Define if <proc_service.h> on solaris uses int instead of
size_t, and assorted other type changes. */
#undef PROC_SERVICE_IS_OLD

View File

@ -120,6 +120,10 @@
/* Define if your locale.h file contains LC_MESSAGES. */
#undef HAVE_LC_MESSAGES
/* Define if <proc_service.h> on solaris uses int instead of
size_t, and assorted other type changes. */
#undef PROC_SERVICE_IS_OLD
/* Define if you have the __argz_count function. */
#undef HAVE___ARGZ_COUNT

100
gdb/configure vendored
View File

@ -4462,6 +4462,46 @@ rm -f conftest*
CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
fi
fi
# Sun randomly tweaked the prototypes in <proc_service.h>
# at one point.
echo $ac_n "checking if <proc_service.h> is old""... $ac_c" 1>&6
echo "configure:4469: checking if <proc_service.h> is old" >&5
if eval "test \"`echo '$''{'gdb_cv_proc_service_is_old'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4475 "configure"
#include "confdefs.h"
#include <proc_service.h>
ps_err_e ps_pdwrite
(struct ps_prochandle*, psaddr_t, const void*, size_t);
int main() {
; return 0; }
EOF
if { (eval echo configure:4486: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
gdb_cv_proc_service_is_old=no
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
gdb_cv_proc_service_is_old=yes
fi
rm -f conftest*
fi
echo "$ac_t""$gdb_cv_proc_service_is_old" 1>&6
if test $gdb_cv_proc_service_is_old = yes; then
cat >> confdefs.h <<\EOF
#define PROC_SERVICE_IS_OLD 1
EOF
fi
else
echo "$ac_t""no" 1>&6
fi
@ -4763,12 +4803,12 @@ fi
# In the cygwin32 environment, we need some additional flags.
echo $ac_n "checking for cygwin32""... $ac_c" 1>&6
echo "configure:4767: checking for cygwin32" >&5
echo "configure:4807: checking for cygwin32" >&5
if eval "test \"`echo '$''{'gdb_cv_os_cygwin32'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4772 "configure"
#line 4812 "configure"
#include "confdefs.h"
#ifdef __CYGWIN32__
@ -4827,7 +4867,7 @@ if test "${with_tclconfig+set}" = set; then
fi
echo $ac_n "checking for Tcl configuration""... $ac_c" 1>&6
echo "configure:4831: checking for Tcl configuration" >&5
echo "configure:4871: checking for Tcl configuration" >&5
if eval "test \"`echo '$''{'ac_cv_c_tclconfig'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4935,7 +4975,7 @@ if test "${with_tkconfig+set}" = set; then
fi
echo $ac_n "checking for Tk configuration""... $ac_c" 1>&6
echo "configure:4939: checking for Tk configuration" >&5
echo "configure:4979: checking for Tk configuration" >&5
if eval "test \"`echo '$''{'ac_cv_c_tkconfig'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5031,7 +5071,7 @@ fi
no_tcl=true
echo $ac_n "checking for Tcl private headers. dir=${configdir}""... $ac_c" 1>&6
echo "configure:5035: checking for Tcl private headers. dir=${configdir}" >&5
echo "configure:5075: checking for Tcl private headers. dir=${configdir}" >&5
# Check whether --with-tclinclude or --without-tclinclude was given.
if test "${with_tclinclude+set}" = set; then
withval="$with_tclinclude"
@ -5097,17 +5137,17 @@ fi
if test x"${ac_cv_c_tclh}" = x ; then
ac_safe=`echo "tclInt.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for tclInt.h""... $ac_c" 1>&6
echo "configure:5101: checking for tclInt.h" >&5
echo "configure:5141: checking for tclInt.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 5106 "configure"
#line 5146 "configure"
#include "confdefs.h"
#include <tclInt.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:5111: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:5151: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -5167,7 +5207,7 @@ fi
#
no_tk=true
echo $ac_n "checking for Tk private headers""... $ac_c" 1>&6
echo "configure:5171: checking for Tk private headers" >&5
echo "configure:5211: checking for Tk private headers" >&5
# Check whether --with-tkinclude or --without-tkinclude was given.
if test "${with_tkinclude+set}" = set; then
withval="$with_tkinclude"
@ -5233,17 +5273,17 @@ fi
if test x"${ac_cv_c_tkh}" = x ; then
ac_safe=`echo "tk.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for tk.h""... $ac_c" 1>&6
echo "configure:5237: checking for tk.h" >&5
echo "configure:5277: checking for tk.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 5242 "configure"
#line 5282 "configure"
#include "confdefs.h"
#include <tk.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:5247: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:5287: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -5289,7 +5329,7 @@ fi
echo $ac_n "checking for Itcl private headers. srcdir=${srcdir}""... $ac_c" 1>&6
echo "configure:5293: checking for Itcl private headers. srcdir=${srcdir}" >&5
echo "configure:5333: checking for Itcl private headers. srcdir=${srcdir}" >&5
if test x"${ac_cv_c_itclh}" = x ; then
for i in ${srcdir}/../itcl ${srcdir}/../../itcl ${srcdir}/../../../itcl ; do
if test -f $i/src/itcl.h ; then
@ -5312,7 +5352,7 @@ fi
echo $ac_n "checking for Tix private headers. srcdir=${srcdir}""... $ac_c" 1>&6
echo "configure:5316: checking for Tix private headers. srcdir=${srcdir}" >&5
echo "configure:5356: checking for Tix private headers. srcdir=${srcdir}" >&5
if test x"${ac_cv_c_tixh}" = x ; then
for i in ${srcdir}/../tix ${srcdir}/../../tix ${srcdir}/../../../tix ; do
if test -f $i/generic/tix.h ; then
@ -5406,7 +5446,7 @@ fi
# Uses ac_ vars as temps to allow command line to override cache and checks.
# --without-x overrides everything else, but does not touch the cache.
echo $ac_n "checking for X""... $ac_c" 1>&6
echo "configure:5410: checking for X" >&5
echo "configure:5450: checking for X" >&5
# Check whether --with-x or --without-x was given.
if test "${with_x+set}" = set; then
@ -5468,12 +5508,12 @@ if test "$ac_x_includes" = NO; then
# First, try using that file with no special directory specified.
cat > conftest.$ac_ext <<EOF
#line 5472 "configure"
#line 5512 "configure"
#include "confdefs.h"
#include <$x_direct_test_include>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:5477: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:5517: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -5542,14 +5582,14 @@ if test "$ac_x_libraries" = NO; then
ac_save_LIBS="$LIBS"
LIBS="-l$x_direct_test_library $LIBS"
cat > conftest.$ac_ext <<EOF
#line 5546 "configure"
#line 5586 "configure"
#include "confdefs.h"
int main() {
${x_direct_test_function}()
; return 0; }
EOF
if { (eval echo configure:5553: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5593: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
LIBS="$ac_save_LIBS"
# We can link X programs with no special library path.
@ -5670,7 +5710,7 @@ fi
# end-sanitize-sky
echo $ac_n "checking for wctype in -lw""... $ac_c" 1>&6
echo "configure:5674: checking for wctype in -lw" >&5
echo "configure:5714: checking for wctype in -lw" >&5
ac_lib_var=`echo w'_'wctype | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -5678,7 +5718,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lw $LIBS"
cat > conftest.$ac_ext <<EOF
#line 5682 "configure"
#line 5722 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -5689,7 +5729,7 @@ int main() {
wctype()
; return 0; }
EOF
if { (eval echo configure:5693: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5733: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -5853,7 +5893,7 @@ links="${links} nm.h"
fi
# start-sanitize-gdbtk
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
echo "configure:5857: checking whether ln -s works" >&5
echo "configure:5897: checking whether ln -s works" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5888,19 +5928,19 @@ fi
echo $ac_n "checking for Cygwin32 environment""... $ac_c" 1>&6
echo "configure:5892: checking for Cygwin32 environment" >&5
echo "configure:5932: checking for Cygwin32 environment" >&5
if eval "test \"`echo '$''{'am_cv_cygwin32'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 5897 "configure"
#line 5937 "configure"
#include "confdefs.h"
int main() {
return __CYGWIN32__;
; return 0; }
EOF
if { (eval echo configure:5904: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:5944: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
am_cv_cygwin32=yes
else
@ -5917,19 +5957,19 @@ echo "$ac_t""$am_cv_cygwin32" 1>&6
CYGWIN32=
test "$am_cv_cygwin32" = yes && CYGWIN32=yes
echo $ac_n "checking for Mingw32 environment""... $ac_c" 1>&6
echo "configure:5921: checking for Mingw32 environment" >&5
echo "configure:5961: checking for Mingw32 environment" >&5
if eval "test \"`echo '$''{'am_cv_mingw32'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 5926 "configure"
#line 5966 "configure"
#include "confdefs.h"
int main() {
return __MINGW32__;
; return 0; }
EOF
if { (eval echo configure:5933: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:5973: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
am_cv_mingw32=yes
else
@ -5948,7 +5988,7 @@ test "$am_cv_mingw32" = yes && MINGW32=yes
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
echo "configure:5952: checking for executable suffix" >&5
echo "configure:5992: checking for executable suffix" >&5
if eval "test \"`echo '$''{'am_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else

View File

@ -248,6 +248,21 @@ if test ${build} = ${host} -a ${host} = ${target} ; then
CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
fi
fi
# 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)
fi
else
AC_MSG_RESULT(no)
fi

View File

@ -956,28 +956,34 @@ sol_thread_stop ()
/* These routines implement the lower half of the thread_db interface. Ie: the
ps_* routines. */
/* Old versions of proc_service.h (1.3 94/10/27) have
prototypes that look like
(const struct ps_prochandle *, ...)
while newer versions use
(struct ps_prochandle *, ...)
and other such minor variations.
/* Various versions of <proc_service.h> have slightly
different function prototypes. In particular, we have
Someday, we might need to discover this in configure.in,
but the #ifdef below seems to be sufficient for now. */
NEWER OLDER
struct ps_prochandle * const struct ps_prochandle *
void* char*
const void* char*
int size_t
#ifdef PS_OBJ_EXEC
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;
#else
typedef const struct ps_prochandle* gdb_ps_prochandle_t;
typedef char* gdb_ps_read_buf_t;
typedef char* gdb_ps_write_buf_t;
Which one you have depends on 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;
#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
/* The next four routines are called by thread_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, these routines need to do