This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Repost: sparc fix for 2.1.3


Hi!

Philip's 01/05 arm changes seem to break sparc and I guess a bunch of other
archs as well (because from what I could see, only arm sigcontextinfo.h
includes all the headers which it uses), plus libc 2.1.3 does not want to
compile with 2.3 headers.
This patch should fix both things. I will post a patch for the main trunk
soon which will include other things as well.

2000-01-13  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/generic/backtrace.c: Include signal.h which
	sigcontextinfo.h headers are used to expect.
	* sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h
	(register_dump): Fix a typo in the printout.
	Avoid using reg_window, so that asm/ptrace.h is not necessary.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
	(ADVANCE_STACK_FRAME): Likewise.

--- libc-2.1/sysdeps/generic/backtrace.c.jj	Mon Jan 10 11:46:54 2000
+++ libc-2.1/sysdeps/generic/backtrace.c	Thu Jan 13 10:16:11 2000
@@ -19,6 +19,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include <execinfo.h>
+#include <signal.h>
 #include <frame.h>
 #include <sigcontextinfo.h>
 
--- libc-2.1/sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h.jj	Tue Dec 21 11:08:53 1999
+++ libc-2.1/sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h	Thu Jan 13 11:14:25 2000
@@ -1,7 +1,7 @@
 /* Dump registers.
-   Copyright (C) 1999 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 1999.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public License as
@@ -20,7 +20,6 @@
 
 #include <sys/uio.h>
 #include <stdio-common/_itoa.h>
-#include <asm/ptrace.h>
 #include <bits/sigcontext.h>
 
 /* We will print the register dump in this format:
@@ -95,7 +94,7 @@ register_dump (int fd, SIGCONTEXT ctx)
   struct iovec iov[150];
   size_t nr = 0;
   int i;
-  struct reg_window *r = (struct reg_window *)
+  unsigned int *r = (unsigned int *)
     ctx->si_regs.u_regs[14];
 
 #define ADD_STRING(str) \
@@ -115,7 +114,7 @@ register_dump (int fd, SIGCONTEXT ctx)
   for (i = 1; i <= 15; i++)
     hexvalue (ctx->si_regs.u_regs[i], regs[3+i], 8);
   for (i = 0; i <= 15; i++)
-    hexvalue (r->locals[i], regs[19+i], 8);
+    hexvalue (r[i], regs[19+i], 8);
   hexvalue (ctx->si_mask, regs[35], 8);
 
   /* Generate the output.  */
@@ -252,7 +251,7 @@ register_dump (int fd, SIGCONTEXT ctx)
 	  ADD_MEM (fregs[36], 16);
 	  ADD_STRING ("  f38: ");
 	  ADD_MEM (fregs[38], 16);
-	  ADD_STRING (" f40: ");
+	  ADD_STRING ("  f40: ");
 	  ADD_MEM (fregs[40], 16);
 	  ADD_STRING ("\n f42: ");
 	  ADD_MEM (fregs[42], 16);
--- libc-2.1/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h.jj	Mon Aug 23 19:51:34 1999
+++ libc-2.1/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h	Thu Jan 13 10:29:18 2000
@@ -1,6 +1,6 @@
-/* Copyright (C) 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 1999.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public License as
@@ -21,6 +21,7 @@
 #define SIGCONTEXT_EXTRA_ARGS
 #define GET_PC(__ctx)	((void *) ((__ctx)->si_regs.pc))
 #define ADVANCE_STACK_FRAME(__next) \
-	((void *)&(((struct reg_window *) (__next))->ins[6]))
+	((void *) (((unsigned *)(__next))+14))
+
 #define GET_STACK(__ctx)	((void *) (__ctx)->si_regs.u_regs[14])
 #define GET_FRAME(__ctx)	ADVANCE_STACK_FRAME (GET_STACK(__ctx))

Cheers,
    Jakub
___________________________________________________________________
Jakub Jelinek | jakub@redhat.com | http://sunsite.mff.cuni.cz/~jj
Linux version 2.3.40 on a sparc64 machine (1343.49 BogoMips)
___________________________________________________________________

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]