* Put a NT_PSTATUS note on solaris cores.
@ 2009-10-09 1:36 Pedro Alves
2009-10-11 21:21 ` Paul Pluzhnikov
0 siblings, 1 reply; 10+ messages in thread
From: Pedro Alves @ 2009-10-09 1:36 UTC (permalink / raw)
To: gdb-patches
This patch makes is to that cores generated with gdb's gcore on
solaris also get an NT_PSTATUS note. It is from this note that gdb can
extract the original pid of the process from the core. From higher
up on procfs.c, I see that pstatus_t is assumed to be defined when
NEW_PROC_API is defined, so I think this is safe to not break builds.
NEW_PROC_API is also always defined on unixware hosts. I'm not
caring for older solaris not using the new proc api.
That bit of ifdefed code wasn't building without the stop_signal
tweak, meaning that the unixware build has been broken
for months and nobody complained.
Checked in.
--
Pedro Alves
2009-10-09 Pedro Alves <pedro@codesourcery.com>
gdb/
* procfs.c (procfs_make_note_section): Always output a NT_PSTATUS
note when NEW_PROC_API is defined.
---
gdb/procfs.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
Index: src/gdb/procfs.c
===================================================================
--- src.orig/gdb/procfs.c 2009-08-08 14:38:01.000000000 +0100
+++ src/gdb/procfs.c 2009-10-09 02:24:06.000000000 +0100
@@ -6126,6 +6126,7 @@ procfs_make_note_section (bfd *obfd, int
struct procfs_corefile_thread_data thread_args;
gdb_byte *auxv;
int auxv_len;
+ enum target_signal stop_signal;
if (get_exec_file (0))
{
@@ -6150,7 +6151,9 @@ procfs_make_note_section (bfd *obfd, int
fname,
psargs);
-#ifdef UNIXWARE
+ stop_signal = find_stop_signal ();
+
+#ifdef NEW_PROC_API
fill_gregset (get_current_regcache (), &gregs, -1);
note_data = elfcore_write_pstatus (obfd, note_data, note_size,
PIDGET (inferior_ptid),
@@ -6160,7 +6163,7 @@ procfs_make_note_section (bfd *obfd, int
thread_args.obfd = obfd;
thread_args.note_data = note_data;
thread_args.note_size = note_size;
- thread_args.stop_signal = find_stop_signal ();
+ thread_args.stop_signal = stop_signal;
proc_iterate_over_threads (pi, procfs_corefile_thread_callback, &thread_args);
/* There should be always at least one thread. */
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Put a NT_PSTATUS note on solaris cores.
2009-10-09 1:36 Put a NT_PSTATUS note on solaris cores Pedro Alves
@ 2009-10-11 21:21 ` Paul Pluzhnikov
2009-10-11 22:10 ` Pedro Alves
0 siblings, 1 reply; 10+ messages in thread
From: Paul Pluzhnikov @ 2009-10-11 21:21 UTC (permalink / raw)
To: Pedro Alves; +Cc: gdb-patches
On Thu, Oct 8, 2009 at 6:36 PM, Pedro Alves <pedro@codesourcery.com> wrote:
> 2009-10-09 Pedro Alves <pedro@codesourcery.com>
>
> gdb/
> * procfs.c (procfs_make_note_section): Always output a NT_PSTATUS
> note when NEW_PROC_API is defined.
This causes build failure on 32-bit solaris-10:
gcc -g -O2 \
-o gdb gdb.o libgdb.a \
../readline/libreadline.a ../opcodes/libopcodes.a
../bfd/libbfd.a ./../intl/libintl.a ../libiberty/libiberty.a
../libdecnumber/libdecnumber.a -ldl -lcurses -lz -lsocket -lnsl -lm
-lpython2.4 -lexpat ../libiberty/libiberty.a gnulib/libgnu.a
Undefined first referenced
symbol in file
elfcore_write_pstatus libgdb.a(procfs.o)
ld: fatal: Symbol referencing errors. No output written to gdb
collect2: ld returned 1 exit status
bfd/elf.c defines elfcore_write_pstatus only when HAVE_PSTATUS_T
From bfd/config.log:
configure:14057: checking for pstatus_t in sys/procfs.h
configure:14075: gcc -c -g -O2 conftest.c >&5
conftest.c: In function `main':
conftest.c:81: error: `pstatus_t' undeclared (first use in this function)
This appears to be a bfd configury bug: AFAIC, pstatus_t is defined if
'#include <procfs.h>, but not if '#include <sys/procfs.h>', because
the former defines _STRUCTURED_PROC to 1, and the latter to 0.
Not sure what the proper fix is.
Thanks,
--
Paul Pluzhnikov
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Put a NT_PSTATUS note on solaris cores.
2009-10-11 21:21 ` Paul Pluzhnikov
@ 2009-10-11 22:10 ` Pedro Alves
2009-10-11 22:35 ` Paul Pluzhnikov
2009-10-11 22:53 ` Pedro Alves
0 siblings, 2 replies; 10+ messages in thread
From: Pedro Alves @ 2009-10-11 22:10 UTC (permalink / raw)
To: Paul Pluzhnikov; +Cc: gdb-patches, Daniel Gutson
On Sunday 11 October 2009 22:21:14, Paul Pluzhnikov wrote:
> On Thu, Oct 8, 2009 at 6:36 PM, Pedro Alves <pedro@codesourcery.com> wrote:
>
> > 2009-10-09 Pedro Alves <pedro@codesourcery.com>
> >
> > gdb/
> > * procfs.c (procfs_make_note_section): Always output a NT_PSTATUS
> > note when NEW_PROC_API is defined.
>
> This causes build failure on 32-bit solaris-10:
Meeh. I guess I'll just revert this until the below is resolved,
since I made GDB cope without this note.
> conftest.c:81: error: `pstatus_t' undeclared (first use in this function)
>
> This appears to be a bfd configury bug: AFAIC, pstatus_t is defined if
> '#include <procfs.h>, but not if '#include <sys/procfs.h>', because
> the former defines _STRUCTURED_PROC to 1, and the latter to 0.
>
> Not sure what the proper fix is.
Ah, this rings a bell. We have the patch below as local change
here. Sorry I didn't notice this. This was needed to make solaris gdb
grok system gcore generated cores correctly. It basically switches
GDB to output the "new" core format using lwpstatus_t notes, if it
is already assuming the new procfs format (NEW_PROC_API).
It may be perhaps better to make bfd and gdb's configury to try
including <procfs.h> if available, and fall back to <sys/procfs.h>
otherwise, if available. I'm not sure why things weren't
done that way. This way does look a bit simpler, though not
as clean. Maybe Daniel remembers (?).
--
Pedro Alves
2009-06-03 Daniel Gutson <dgutson@codesourcery.com>
gdb/
* procfs.c (procfs_do_thread_registers): If NEW_PROC_API is
defined, use elfcore_write_lwpstatus.
bfd/
* elf.c: Define _STRUCTURED_PROC before including sys/procfs.h.
* bfd.m4 (BFD_HAVE_SYS_PROCFS_TYPE): Define _STRUCTURED_PROC
before including procfs.h.
(BFD_HAVE_SYS_PROCFS_TYPE_MEMBER): Likewise.
* configure.in: Added autoconf probe for the pr_fpreg member.
* configure: Regenerated.
* config.in: Regenerated.
---
bfd/bfd.m4 | 4 +++
bfd/config.in | 3 ++
bfd/configure | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
bfd/configure.in | 1
bfd/elf.c | 2 +
gdb/procfs.c | 2 -
6 files changed, 80 insertions(+), 1 deletion(-)
Index: src/gdb/procfs.c
===================================================================
--- src.orig/gdb/procfs.c 2009-10-09 02:55:25.000000000 +0100
+++ src/gdb/procfs.c 2009-10-11 22:47:49.000000000 +0100
@@ -6063,7 +6063,7 @@ procfs_do_thread_registers (bfd *obfd, p
merged_pid = TIDGET (ptid) << 16 | PIDGET (ptid);
fill_gregset (regcache, &gregs, -1);
-#if defined (UNIXWARE)
+#if defined (UNIXWARE) || defined (NEW_PROC_API)
note_data = (char *) elfcore_write_lwpstatus (obfd,
note_data,
note_size,
Index: src/bfd/elf.c
===================================================================
--- src.orig/bfd/elf.c 2009-09-28 18:03:35.000000000 +0100
+++ src/bfd/elf.c 2009-10-11 22:46:55.000000000 +0100
@@ -7420,6 +7420,8 @@ _bfd_elf_rel_vtable_reloc_fn
out details about the corefile. */
#ifdef HAVE_SYS_PROCFS_H
+/* Needed for new procfs interface on sparc-solaris. */
+# define _STRUCTURED_PROC 1
# include <sys/procfs.h>
#endif
Index: src/bfd/bfd.m4
===================================================================
--- src.orig/bfd/bfd.m4 2009-09-14 18:36:15.000000000 +0100
+++ src/bfd/bfd.m4 2009-10-11 22:46:55.000000000 +0100
@@ -8,6 +8,8 @@ AC_DEFUN([BFD_HAVE_SYS_PROCFS_TYPE],
AC_CACHE_VAL(bfd_cv_have_sys_procfs_type_$1,
[AC_TRY_COMPILE([
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>],
[$1 avar],
bfd_cv_have_sys_procfs_type_$1=yes,
@@ -27,6 +29,8 @@ AC_DEFUN([BFD_HAVE_SYS_PROCFS_TYPE_MEMBE
AC_CACHE_VAL(bfd_cv_have_sys_procfs_type_member_$1_$2,
[AC_TRY_COMPILE([
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>],
[$1 avar; void* aref = (void*) &avar.$2],
bfd_cv_have_sys_procfs_type_member_$1_$2=yes,
Index: src/bfd/configure.in
===================================================================
--- src.orig/bfd/configure.in 2009-09-30 02:36:48.000000000 +0100
+++ src/bfd/configure.in 2009-10-11 22:46:55.000000000 +0100
@@ -500,6 +500,7 @@ changequote([,])dnl
BFD_HAVE_SYS_PROCFS_TYPE(lwpxstatus_t)
BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(lwpstatus_t, pr_context)
BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(lwpstatus_t, pr_reg)
+ BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(lwpstatus_t, pr_fpreg)
BFD_HAVE_SYS_PROCFS_TYPE(win32_pstatus_t)
fi
fi
Index: src/bfd/configure
===================================================================
--- src.orig/bfd/configure 2009-09-30 02:36:48.000000000 +0100
+++ src/bfd/configure 2009-10-11 22:48:22.000000000 +0100
@@ -13923,6 +13923,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -13958,6 +13960,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -13993,6 +13997,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14028,6 +14034,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14063,6 +14071,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14098,6 +14108,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14133,6 +14145,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14168,6 +14182,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14203,6 +14219,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14238,6 +14256,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14273,6 +14293,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14308,6 +14330,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14343,6 +14367,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14378,6 +14404,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14413,6 +14441,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14439,6 +14469,43 @@ $as_echo "#define HAVE_LWPSTATUS_T_PR_RE
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg" >&5
$as_echo "$bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpstatus_t.pr_fpreg in sys/procfs.h" >&5
+$as_echo_n "checking for lwpstatus_t.pr_fpreg in sys/procfs.h... " >&6; }
+ if test "${bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_fpreg+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
+#include <sys/procfs.h>
+int
+main ()
+{
+lwpstatus_t avar; void* aref = (void*) &avar.pr_fpreg
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_fpreg=yes
+else
+ bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_fpreg=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+ if test $bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_fpreg = yes; then
+
+$as_echo "#define HAVE_LWPSTATUS_T_PR_FPREG 1" >>confdefs.h
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_fpreg" >&5
+$as_echo "$bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_fpreg" >&6; }
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for win32_pstatus_t in sys/procfs.h" >&5
$as_echo_n "checking for win32_pstatus_t in sys/procfs.h... " >&6; }
if test "${bfd_cv_have_sys_procfs_type_win32_pstatus_t+set}" = set; then :
@@ -14448,6 +14515,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
Index: src/bfd/config.in
===================================================================
--- src.orig/bfd/config.in 2009-09-14 18:36:15.000000000 +0100
+++ src/bfd/config.in 2009-10-11 22:46:55.000000000 +0100
@@ -114,6 +114,9 @@
/* Define if <sys/procfs.h> has lwpstatus_t.pr_context. */
#undef HAVE_LWPSTATUS_T_PR_CONTEXT
+/* Define if <sys/procfs.h> has lwpstatus_t.pr_fpreg. */
+#undef HAVE_LWPSTATUS_T_PR_FPREG
+
/* Define if <sys/procfs.h> has lwpstatus_t.pr_reg. */
#undef HAVE_LWPSTATUS_T_PR_REG
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Put a NT_PSTATUS note on solaris cores.
2009-10-11 22:10 ` Pedro Alves
@ 2009-10-11 22:35 ` Paul Pluzhnikov
2009-10-11 22:40 ` Pedro Alves
2009-10-11 22:53 ` Pedro Alves
1 sibling, 1 reply; 10+ messages in thread
From: Paul Pluzhnikov @ 2009-10-11 22:35 UTC (permalink / raw)
To: Pedro Alves; +Cc: gdb-patches, Daniel Gutson
On Sun, Oct 11, 2009 at 3:10 PM, Pedro Alves <pedro@codesourcery.com> wrote:
Index: src/gdb/procfs.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- src.orig/gdb/procfs.c 2009-10-09 02:55:25.000000000 +0100
+++ src/gdb/procfs.c 2009-10-11 22:47:49.000000000 +0100
Looks like your KMail took a hint from my Gmail, and decided to do
quoted-printable encoding of the patch :-(
I am having a bit of trouble restoring sanity to it.
Thanks,
--
Paul Pluzhnikov
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Put a NT_PSTATUS note on solaris cores.
2009-10-11 22:35 ` Paul Pluzhnikov
@ 2009-10-11 22:40 ` Pedro Alves
2009-10-11 23:21 ` Paul Pluzhnikov
0 siblings, 1 reply; 10+ messages in thread
From: Pedro Alves @ 2009-10-11 22:40 UTC (permalink / raw)
To: Paul Pluzhnikov; +Cc: gdb-patches, Daniel Gutson
[-- Attachment #1: Type: text/plain, Size: 708 bytes --]
On Sunday 11 October 2009 23:35:19, Paul Pluzhnikov wrote:
> On Sun, Oct 11, 2009 at 3:10 PM, Pedro Alves <pedro@codesourcery.com> wrote:
>
> Index: src/gdb/procfs.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- src.orig/gdb/procfs.c 2009-10-09 02:55:25.000000000 +0100
> +++ src/gdb/procfs.c 2009-10-11 22:47:49.000000000 +0100
>
> Looks like your KMail took a hint from my Gmail, and decided to do
> quoted-printable encoding of the patch :-(
> I am having a bit of trouble restoring sanity to it.
:-) Bad KMail!
--
Pedro Alves
[-- Attachment #2: structured.diff --]
[-- Type: text/x-diff, Size: 8797 bytes --]
2009-06-03 Daniel Gutson <dgutson@codesourcery.com>
gdb/
* procfs.c (procfs_do_thread_registers): If NEW_PROC_API is
defined, use elfcore_write_lwpstatus.
bfd/
* elf.c: Define _STRUCTURED_PROC before including sys/procfs.h.
* bfd.m4 (BFD_HAVE_SYS_PROCFS_TYPE): Define _STRUCTURED_PROC
before including procfs.h.
(BFD_HAVE_SYS_PROCFS_TYPE_MEMBER): Likewise.
* configure.in: Added autoconf probe for the pr_fpreg member.
* configure: Regenerated.
* config.in: Regenerated.
---
bfd/bfd.m4 | 4 +++
bfd/config.in | 3 ++
bfd/configure | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
bfd/configure.in | 1
bfd/elf.c | 2 +
gdb/procfs.c | 2 -
6 files changed, 80 insertions(+), 1 deletion(-)
Index: src/gdb/procfs.c
===================================================================
--- src.orig/gdb/procfs.c 2009-10-09 02:55:25.000000000 +0100
+++ src/gdb/procfs.c 2009-10-11 22:47:49.000000000 +0100
@@ -6063,7 +6063,7 @@ procfs_do_thread_registers (bfd *obfd, p
merged_pid = TIDGET (ptid) << 16 | PIDGET (ptid);
fill_gregset (regcache, &gregs, -1);
-#if defined (UNIXWARE)
+#if defined (UNIXWARE) || defined (NEW_PROC_API)
note_data = (char *) elfcore_write_lwpstatus (obfd,
note_data,
note_size,
Index: src/bfd/elf.c
===================================================================
--- src.orig/bfd/elf.c 2009-09-28 18:03:35.000000000 +0100
+++ src/bfd/elf.c 2009-10-11 22:46:55.000000000 +0100
@@ -7420,6 +7420,8 @@ _bfd_elf_rel_vtable_reloc_fn
out details about the corefile. */
#ifdef HAVE_SYS_PROCFS_H
+/* Needed for new procfs interface on sparc-solaris. */
+# define _STRUCTURED_PROC 1
# include <sys/procfs.h>
#endif
Index: src/bfd/bfd.m4
===================================================================
--- src.orig/bfd/bfd.m4 2009-09-14 18:36:15.000000000 +0100
+++ src/bfd/bfd.m4 2009-10-11 22:46:55.000000000 +0100
@@ -8,6 +8,8 @@ AC_DEFUN([BFD_HAVE_SYS_PROCFS_TYPE],
AC_CACHE_VAL(bfd_cv_have_sys_procfs_type_$1,
[AC_TRY_COMPILE([
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>],
[$1 avar],
bfd_cv_have_sys_procfs_type_$1=yes,
@@ -27,6 +29,8 @@ AC_DEFUN([BFD_HAVE_SYS_PROCFS_TYPE_MEMBE
AC_CACHE_VAL(bfd_cv_have_sys_procfs_type_member_$1_$2,
[AC_TRY_COMPILE([
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>],
[$1 avar; void* aref = (void*) &avar.$2],
bfd_cv_have_sys_procfs_type_member_$1_$2=yes,
Index: src/bfd/configure.in
===================================================================
--- src.orig/bfd/configure.in 2009-09-30 02:36:48.000000000 +0100
+++ src/bfd/configure.in 2009-10-11 22:46:55.000000000 +0100
@@ -500,6 +500,7 @@ changequote([,])dnl
BFD_HAVE_SYS_PROCFS_TYPE(lwpxstatus_t)
BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(lwpstatus_t, pr_context)
BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(lwpstatus_t, pr_reg)
+ BFD_HAVE_SYS_PROCFS_TYPE_MEMBER(lwpstatus_t, pr_fpreg)
BFD_HAVE_SYS_PROCFS_TYPE(win32_pstatus_t)
fi
fi
Index: src/bfd/configure
===================================================================
--- src.orig/bfd/configure 2009-09-30 02:36:48.000000000 +0100
+++ src/bfd/configure 2009-10-11 22:48:22.000000000 +0100
@@ -13923,6 +13923,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -13958,6 +13960,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -13993,6 +13997,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14028,6 +14034,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14063,6 +14071,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14098,6 +14108,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14133,6 +14145,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14168,6 +14182,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14203,6 +14219,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14238,6 +14256,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14273,6 +14293,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14308,6 +14330,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14343,6 +14367,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14378,6 +14404,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14413,6 +14441,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
@@ -14439,6 +14469,43 @@ $as_echo "#define HAVE_LWPSTATUS_T_PR_RE
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg" >&5
$as_echo "$bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpstatus_t.pr_fpreg in sys/procfs.h" >&5
+$as_echo_n "checking for lwpstatus_t.pr_fpreg in sys/procfs.h... " >&6; }
+ if test "${bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_fpreg+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
+#include <sys/procfs.h>
+int
+main ()
+{
+lwpstatus_t avar; void* aref = (void*) &avar.pr_fpreg
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_fpreg=yes
+else
+ bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_fpreg=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+ if test $bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_fpreg = yes; then
+
+$as_echo "#define HAVE_LWPSTATUS_T_PR_FPREG 1" >>confdefs.h
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_fpreg" >&5
+$as_echo "$bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_fpreg" >&6; }
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for win32_pstatus_t in sys/procfs.h" >&5
$as_echo_n "checking for win32_pstatus_t in sys/procfs.h... " >&6; }
if test "${bfd_cv_have_sys_procfs_type_win32_pstatus_t+set}" = set; then :
@@ -14448,6 +14515,8 @@ else
/* end confdefs.h. */
#define _SYSCALL32
+/* Needed for new procfs interface on sparc-solaris. */
+#define _STRUCTURED_PROC 1
#include <sys/procfs.h>
int
main ()
Index: src/bfd/config.in
===================================================================
--- src.orig/bfd/config.in 2009-09-14 18:36:15.000000000 +0100
+++ src/bfd/config.in 2009-10-11 22:46:55.000000000 +0100
@@ -114,6 +114,9 @@
/* Define if <sys/procfs.h> has lwpstatus_t.pr_context. */
#undef HAVE_LWPSTATUS_T_PR_CONTEXT
+/* Define if <sys/procfs.h> has lwpstatus_t.pr_fpreg. */
+#undef HAVE_LWPSTATUS_T_PR_FPREG
+
/* Define if <sys/procfs.h> has lwpstatus_t.pr_reg. */
#undef HAVE_LWPSTATUS_T_PR_REG
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Put a NT_PSTATUS note on solaris cores.
2009-10-11 22:10 ` Pedro Alves
2009-10-11 22:35 ` Paul Pluzhnikov
@ 2009-10-11 22:53 ` Pedro Alves
1 sibling, 0 replies; 10+ messages in thread
From: Pedro Alves @ 2009-10-11 22:53 UTC (permalink / raw)
To: gdb-patches; +Cc: Paul Pluzhnikov, Daniel Gutson
On Sunday 11 October 2009 23:10:25, Pedro Alves wrote:
> Meeh. ?I guess I'll just revert this until the below is resolved,
> since I made GDB cope without this note.
Done. I didn't revert the bit that unbroke unixware's build.
--
Pedro Alves
2009-10-11 Pedro Alves <pedro@codesourcery.com>
* procfs.c (procfs_make_note_section): Go back to only outputing
an NT_PSTATUS note when UNIXWARE is defined.
---
gdb/procfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: src/gdb/procfs.c
===================================================================
--- src.orig/gdb/procfs.c 2009-10-11 23:36:07.000000000 +0100
+++ src/gdb/procfs.c 2009-10-11 23:36:42.000000000 +0100
@@ -6153,7 +6153,7 @@ procfs_make_note_section (bfd *obfd, int
stop_signal = find_stop_signal ();
-#ifdef NEW_PROC_API
+#ifdef UNIXWARE
fill_gregset (get_current_regcache (), &gregs, -1);
note_data = elfcore_write_pstatus (obfd, note_data, note_size,
PIDGET (inferior_ptid),
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Put a NT_PSTATUS note on solaris cores.
2009-10-11 22:40 ` Pedro Alves
@ 2009-10-11 23:21 ` Paul Pluzhnikov
2009-10-31 16:34 ` Paul Pluzhnikov
0 siblings, 1 reply; 10+ messages in thread
From: Paul Pluzhnikov @ 2009-10-11 23:21 UTC (permalink / raw)
To: Pedro Alves; +Cc: gdb-patches, Daniel Gutson
On Sun, Oct 11, 2009 at 3:40 PM, Pedro Alves <pedro@codesourcery.com> wrote:
>> I am having a bit of trouble restoring sanity to it.
Turns out it's the Solaris patch that was causing me trouble.
> structured.diff
With that it builds fine.
Thanks,
--
Paul Pluzhnikov
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Put a NT_PSTATUS note on solaris cores.
2009-10-11 23:21 ` Paul Pluzhnikov
@ 2009-10-31 16:34 ` Paul Pluzhnikov
2009-10-31 21:00 ` Pedro Alves
0 siblings, 1 reply; 10+ messages in thread
From: Paul Pluzhnikov @ 2009-10-31 16:34 UTC (permalink / raw)
To: Pedro Alves; +Cc: gdb-patches, Daniel Gutson
On Sun, Oct 11, 2009 at 4:21 PM, Paul Pluzhnikov <ppluzhnikov@google.com> wrote:
> On Sun, Oct 11, 2009 at 3:40 PM, Pedro Alves <pedro@codesourcery.com> wrote:
>> structured.diff
>
> With that it builds fine.
Should this be committed?
[GDB currently doesn't build on Solaris 10 without it.]
Thanks,
--
Paul Pluzhnikov
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Put a NT_PSTATUS note on solaris cores.
2009-10-31 16:34 ` Paul Pluzhnikov
@ 2009-10-31 21:00 ` Pedro Alves
2009-10-31 23:26 ` Paul Pluzhnikov
0 siblings, 1 reply; 10+ messages in thread
From: Pedro Alves @ 2009-10-31 21:00 UTC (permalink / raw)
To: Paul Pluzhnikov; +Cc: gdb-patches, Daniel Gutson
On Saturday 31 October 2009 16:34:46, Paul Pluzhnikov wrote:
> On Sun, Oct 11, 2009 at 4:21 PM, Paul Pluzhnikov <ppluzhnikov@google.com> wrote:
> > On Sun, Oct 11, 2009 at 3:40 PM, Pedro Alves <pedro@codesourcery.com> wrote:
>
> >> structured.diff
> >
> > With that it builds fine.
>
> Should this be committed?
> [GDB currently doesn't build on Solaris 10 without it.]
It doesn't? I thought I had reverted the problematic patch. How
is it failing currently?
--
Pedro Alves
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Put a NT_PSTATUS note on solaris cores.
2009-10-31 21:00 ` Pedro Alves
@ 2009-10-31 23:26 ` Paul Pluzhnikov
0 siblings, 0 replies; 10+ messages in thread
From: Paul Pluzhnikov @ 2009-10-31 23:26 UTC (permalink / raw)
To: Pedro Alves; +Cc: gdb-patches, Daniel Gutson
On Sat, Oct 31, 2009 at 2:01 PM, Pedro Alves <pedro@codesourcery.com> wrote:
> How is it failing currently?
It's actually the bfd part that doesn't build; sorry for confusion:
make[3]: Entering directory `/export/home/paul/gdb-cvs/build/bfd'
/bin/bash ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I.
-I../../src/bfd -I. -I../../src/bfd -I../../src/bfd/../include
-I./../intl -DBINDIR='"/usr/local/bin"' -W -Wall -Wstrict-prototypes
-Wmissing-prototypes -Werror -g -O0 -MT elf.lo -MD -MP -MF
.deps/elf.Tpo -c -o elf.lo ../../src/bfd/elf.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../../src/bfd -I.
-I../../src/bfd -I../../src/bfd/../include -I./../intl
-DBINDIR=\"/usr/local/bin\" -W -Wall -Wstrict-prototypes
-Wmissing-prototypes -Werror -g -O0 -MT elf.lo -MD -MP -MF
.deps/elf.Tpo -c ../../src/bfd/elf.c -o elf.o
../../src/bfd/elf.c:7624: error: syntax error before "elfcore_psinfo_t"
../../src/bfd/elf.c:7624: warning: type defaults to `int' in
declaration of `elfcore_psinfo_t'
../../src/bfd/elf.c:7624: warning: data definition has no type or storage class
../../src/bfd/elf.c:7626: error: syntax error before "elfcore_psinfo32_t"
../../src/bfd/elf.c:7626: warning: type defaults to `int' in
declaration of `elfcore_psinfo32_t'
../../src/bfd/elf.c:7626: warning: data definition has no type or storage class
../../src/bfd/elf.c: In function `elfcore_grok_psinfo':
../../src/bfd/elf.c:7662: error: syntax error before "psinfo"
../../src/bfd/elf.c:7664: error: `psinfo' undeclared (first use in
this function)
../../src/bfd/elf.c:7664: error: (Each undeclared identifier is
reported only once
../../src/bfd/elf.c:7664: error: for each function it appears in.)
../../src/bfd/elf.c:7678: error: syntax error before "psinfo"
../../src/bfd/elf.c: In function `elfcore_grok_pstatus':
../../src/bfd/elf.c:7719: error: `pstatus_t' undeclared (first use in
this function)
../../src/bfd/elf.c:7725: error: syntax error before "pstat"
../../src/bfd/elf.c:7727: error: `pstat' undeclared (first use in this function)
../../src/bfd/elf.c:7732: error: `pstatus32_t' undeclared (first use
in this function)
../../src/bfd/elf.c:7735: error: syntax error before "pstat"
../../src/bfd/elf.c: In function `elfcore_grok_lwpstatus':
../../src/bfd/elf.c:7754: error: `lwpstatus_t' undeclared (first use
in this function)
../../src/bfd/elf.c:7754: error: syntax error before "lwpstat"
../../src/bfd/elf.c:7760: error: `lwpstat' undeclared (first use in
this function)
../../src/bfd/elf.c:7793: error: syntax error before ')' token
../../src/bfd/elf.c: In function `elfcore_write_prpsinfo':
../../src/bfd/elf.c:8421: error: `psinfo32_t' undeclared (first use in
this function)
../../src/bfd/elf.c:8421: error: syntax error before "data"
../../src/bfd/elf.c:8428: error: `data' undeclared (first use in this function)
../../src/bfd/elf.c:8438: error: `psinfo_t' undeclared (first use in
this function)
../../src/bfd/elf.c:8438: error: syntax error before "data"
../../src/bfd/elf.c: In function `elfcore_write_lwpstatus':
../../src/bfd/elf.c:8512: error: `lwpstatus_t' undeclared (first use
in this function)
../../src/bfd/elf.c:8512: error: syntax error before "lwpstat"
../../src/bfd/elf.c:8515: error: `lwpstat' undeclared (first use in
this function)
../../src/bfd/elf.c: In function `elfcore_write_pstatus':
../../src/bfd/elf.c:8549: error: `pstatus32_t' undeclared (first use
in this function)
../../src/bfd/elf.c:8549: error: syntax error before "pstat"
../../src/bfd/elf.c:8551: error: `pstat' undeclared (first use in this function)
../../src/bfd/elf.c:8560: error: `pstatus_t' undeclared (first use in
this function)
../../src/bfd/elf.c:8560: error: syntax error before "pstat"
make[3]: *** [elf.lo] Error 1
make[3]: Leaving directory `/export/home/paul/gdb-cvs/build/bfd'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/export/home/paul/gdb-cvs/build/bfd'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/export/home/paul/gdb-cvs/build/bfd'
make: *** [all-bfd] Error 2
--
Paul Pluzhnikov
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2009-10-31 23:26 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-10-09 1:36 Put a NT_PSTATUS note on solaris cores Pedro Alves
2009-10-11 21:21 ` Paul Pluzhnikov
2009-10-11 22:10 ` Pedro Alves
2009-10-11 22:35 ` Paul Pluzhnikov
2009-10-11 22:40 ` Pedro Alves
2009-10-11 23:21 ` Paul Pluzhnikov
2009-10-31 16:34 ` Paul Pluzhnikov
2009-10-31 21:00 ` Pedro Alves
2009-10-31 23:26 ` Paul Pluzhnikov
2009-10-11 22:53 ` Pedro Alves
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox