aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/acconfig.h6
-rw-r--r--gdb/config.in14
-rwxr-xr-xgdb/configure222
-rw-r--r--gdb/configure.ac28
5 files changed, 214 insertions, 65 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d5fe71e..1ca68e2 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,14 @@
2005-01-21 Mark Kettenis <kettenis@gnu.org>
+ * acconfig.h (HAVE_STRUCT_REG_R_FS, HAVE_STRUCT_R_GS): Remove
+ undefs.
+ * configure.ac: Use AC_CHECK_MEMBERS to check whether `struct
+ thread' has a td_pcb member and whether `struct reg' has r_fs and
+ r_gs members.
+ * configure, config.in: Regenerate.
+
+2005-01-21 Mark Kettenis <kettenis@gnu.org>
+
* configure.ac: Remove ia64-*-aix* junk.
* configure: Regenerate.
diff --git a/gdb/acconfig.h b/gdb/acconfig.h
index 01e3b3f..e625697 100644
--- a/gdb/acconfig.h
+++ b/gdb/acconfig.h
@@ -3,12 +3,6 @@
# undef _GNU_SOURCE
#endif
-/* Define if your struct reg has r_fs. */
-#undef HAVE_STRUCT_REG_R_FS
-
-/* Define if your struct reg has r_gs. */
-#undef HAVE_STRUCT_REG_R_GS
-
/* Define if pstatus_t type is available */
#undef HAVE_PSTATUS_T
diff --git a/gdb/config.in b/gdb/config.in
index 63b9e61..9c6414a 100644
--- a/gdb/config.in
+++ b/gdb/config.in
@@ -4,12 +4,6 @@
# undef _GNU_SOURCE
#endif
-/* Define if your struct reg has r_fs. */
-#undef HAVE_STRUCT_REG_R_FS
-
-/* Define if your struct reg has r_gs. */
-#undef HAVE_STRUCT_REG_R_GS
-
/* Define if pstatus_t type is available */
#undef HAVE_PSTATUS_T
@@ -457,10 +451,16 @@
/* Define to 1 if your system has struct reg in <machine/reg.h>. */
#undef HAVE_STRUCT_REG
+/* Define to 1 if `r_fs' is member of `struct reg'. */
+#undef HAVE_STRUCT_REG_R_FS
+
+/* Define to 1 if `r_gs' is member of `struct reg'. */
+#undef HAVE_STRUCT_REG_R_GS
+
/* Define to 1 if `st_blocks' is member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_BLOCKS
-/* Define to 1 if your system has td_pcb in struct thread. */
+/* Define to 1 if `td_pcb' is member of `struct thread'. */
#undef HAVE_STRUCT_THREAD_TD_PCB
/* Define to 1 if you have the `syscall' function. */
diff --git a/gdb/configure b/gdb/configure
index 38fef3f..d22a2df 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -16746,10 +16746,10 @@ _ACEOF
fi
-# See if <sys/proc.h> defines `struct thread' with a td_pcb member.
-echo "$as_me:$LINENO: checking for td_pcb in struct thread" >&5
-echo $ECHO_N "checking for td_pcb in struct thread... $ECHO_C" >&6
-if test "${gdb_cv_struct_thread_td_pcb+set}" = set; then
+# Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
+echo "$as_me:$LINENO: checking for struct thread.td_pcb" >&5
+echo $ECHO_N "checking for struct thread.td_pcb... $ECHO_C" >&6
+if test "${ac_cv_member_struct_thread_td_pcb+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
@@ -16760,10 +16760,14 @@ cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#include <sys/param.h>
#include <sys/proc.h>
+
+
int
main ()
{
-struct thread td; td.td_pcb;
+static struct thread ac_aggr;
+if (ac_aggr.td_pcb)
+return 0;
;
return 0;
}
@@ -16790,25 +16794,76 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- gdb_cv_struct_thread_td_pcb=yes
+ ac_cv_member_struct_thread_td_pcb=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-gdb_cv_struct_thread_td_pcb=no
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/param.h>
+#include <sys/proc.h>
+
+
+int
+main ()
+{
+static struct thread ac_aggr;
+if (sizeof ac_aggr.td_pcb)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_thread_td_pcb=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_thread_td_pcb=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:$LINENO: result: $gdb_cv_struct_thread_td_pcb" >&5
-echo "${ECHO_T}$gdb_cv_struct_thread_td_pcb" >&6
-if test $gdb_cv_struct_thread_td_pcb = yes; then
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_thread_td_pcb" >&5
+echo "${ECHO_T}$ac_cv_member_struct_thread_td_pcb" >&6
+if test $ac_cv_member_struct_thread_td_pcb = yes; then
-cat >>confdefs.h <<\_ACEOF
+cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_THREAD_TD_PCB 1
_ACEOF
+
fi
+
# See if <sys/lwp.h> defines `struct lwp`.
echo "$as_me:$LINENO: checking for struct lwp" >&5
echo $ECHO_N "checking for struct lwp... $ECHO_C" >&6
@@ -16937,9 +16992,9 @@ fi
# See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
# Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
-echo "$as_me:$LINENO: checking for r_fs in struct reg" >&5
-echo $ECHO_N "checking for r_fs in struct reg... $ECHO_C" >&6
-if test "${gdb_cv_struct_reg_r_fs+set}" = set; then
+echo "$as_me:$LINENO: checking for struct reg.r_fs" >&5
+echo $ECHO_N "checking for struct reg.r_fs... $ECHO_C" >&6
+if test "${ac_cv_member_struct_reg_r_fs+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
@@ -16949,10 +17004,58 @@ cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#include <machine/reg.h>
+
+int
+main ()
+{
+static struct reg ac_aggr;
+if (ac_aggr.r_fs)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_reg_r_fs=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <machine/reg.h>
+
int
main ()
{
-struct reg r; r.r_fs;
+static struct reg ac_aggr;
+if (sizeof ac_aggr.r_fs)
+return 0;
;
return 0;
}
@@ -16979,26 +17082,30 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- gdb_cv_struct_reg_r_fs=yes
+ ac_cv_member_struct_reg_r_fs=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-gdb_cv_struct_reg_r_fs=no
+ac_cv_member_struct_reg_r_fs=no
fi
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:$LINENO: result: $gdb_cv_struct_reg_r_fs" >&5
-echo "${ECHO_T}$gdb_cv_struct_reg_r_fs" >&6
-if test $gdb_cv_struct_reg_r_fs = yes; then
- cat >>confdefs.h <<\_ACEOF
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_reg_r_fs" >&5
+echo "${ECHO_T}$ac_cv_member_struct_reg_r_fs" >&6
+if test $ac_cv_member_struct_reg_r_fs = yes; then
+
+cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_REG_R_FS 1
_ACEOF
+
fi
-echo "$as_me:$LINENO: checking for r_gs in struct reg" >&5
-echo $ECHO_N "checking for r_gs in struct reg... $ECHO_C" >&6
-if test "${gdb_cv_struct_reg_r_gs+set}" = set; then
+echo "$as_me:$LINENO: checking for struct reg.r_gs" >&5
+echo $ECHO_N "checking for struct reg.r_gs... $ECHO_C" >&6
+if test "${ac_cv_member_struct_reg_r_gs+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
@@ -17008,10 +17115,13 @@ cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#include <machine/reg.h>
+
int
main ()
{
-struct reg r; r.r_gs;
+static struct reg ac_aggr;
+if (ac_aggr.r_gs)
+return 0;
;
return 0;
}
@@ -17038,24 +17148,74 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- gdb_cv_struct_reg_r_gs=yes
+ ac_cv_member_struct_reg_r_gs=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-gdb_cv_struct_reg_r_gs=no
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <machine/reg.h>
+
+int
+main ()
+{
+static struct reg ac_aggr;
+if (sizeof ac_aggr.r_gs)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_reg_r_gs=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_reg_r_gs=no
fi
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:$LINENO: result: $gdb_cv_struct_reg_r_gs" >&5
-echo "${ECHO_T}$gdb_cv_struct_reg_r_gs" >&6
-if test $gdb_cv_struct_reg_r_gs = yes; then
- cat >>confdefs.h <<\_ACEOF
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_reg_r_gs" >&5
+echo "${ECHO_T}$ac_cv_member_struct_reg_r_gs" >&6
+if test $ac_cv_member_struct_reg_r_gs = yes; then
+
+cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_REG_R_GS 1
_ACEOF
+
fi
+
# See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
echo "$as_me:$LINENO: checking for PTRACE_GETREGS" >&5
echo $ECHO_N "checking for PTRACE_GETREGS... $ECHO_C" >&6
diff --git a/gdb/configure.ac b/gdb/configure.ac
index d51b0a5..e30e4af 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -589,15 +589,11 @@ if test "$gdb_with_regex" = yes; then
[Define to 1 if the regex included in libiberty should be used.])
fi
-# See if <sys/proc.h> defines `struct thread' with a td_pcb member.
-AC_CACHE_CHECK([for td_pcb in struct thread], gdb_cv_struct_thread_td_pcb,
-[AC_TRY_COMPILE([#include <sys/param.h>
-#include <sys/proc.h>], [struct thread td; td.td_pcb;],
-gdb_cv_struct_thread_td_pcb=yes, gdb_cv_struct_thread_td_pcb=no)])
-if test $gdb_cv_struct_thread_td_pcb = yes; then
- AC_DEFINE(HAVE_STRUCT_THREAD_TD_PCB, 1,
- [Define to 1 if your system has td_pcb in struct thread.])
-fi
+# Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
+AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
+[#include <sys/param.h>
+#include <sys/proc.h>
+])
# See if <sys/lwp.h> defines `struct lwp`.
AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
@@ -621,18 +617,8 @@ fi
# See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
# Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
-AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_reg_r_fs,
-[AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
-gdb_cv_struct_reg_r_fs=yes, gdb_cv_struct_reg_r_fs=no)])
-if test $gdb_cv_struct_reg_r_fs = yes; then
- AC_DEFINE(HAVE_STRUCT_REG_R_FS)
-fi
-AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_reg_r_gs,
-[AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
-gdb_cv_struct_reg_r_gs=yes, gdb_cv_struct_reg_r_gs=no)])
-if test $gdb_cv_struct_reg_r_gs = yes; then
- AC_DEFINE(HAVE_STRUCT_REG_R_GS)
-fi
+AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
+ [#include <machine/reg.h>])
# See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
AC_MSG_CHECKING(for PTRACE_GETREGS)