This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [SH][PATCH] fix headers for new kernel headers


Andrew Stubbs <ams@codesourcery.com> wrote:
> This patch is a combination of the two patches, with fixes for my problems.

Andrew, Sugioka-san, thanks for your patches and patience.
The new patch is essentially ok.  I've modified it and its ChangeLog
entry slightly for the copyright years of user.h and minor formatting
changes.

Uli, please approve the patch below.

Regards,
	kaz
--
2009-02-26  Andrew Stubbs  <ams@codesourcery.com>
	    SUGIOKA Toshinobu  <sugioka@itonet.co.jp>

	* sysdeps/unix/sysv/linux/sh/sys/procfs.h: Don't include signal.h,
	sys/ucontext.h and asm/elf.h.  Include sys/user.h.
	* sysdeps/unix/sysv/linux/sh/sys/user.h: Don't include features.h
	and asm/user.h.  Include asm/ptrace.h.
	(PTRACE_GETREGS, PTRACE_SETREGS, PTRACE_GETFPREGS,
	PTRACE_SETFPREGS, PTRACE_GETFDPIC, PTRACE_GETFDPIC_EXEC,
	PTRACE_GETFDPIC_INTERP, PTRACE_GETDSPREGS, PTRACE_SETDSPREGS):
	Undefine.
	(start_thread): Don't undefine.
	(elf_greg_t, ELF_NGREG, elf_fpregset_t, user_fpu_struct, user):
	Define.

diff -uprN ORIG/libc/sysdeps/unix/sysv/linux/sh/sys/procfs.h LOCAL/libc/sysdeps/unix/sysv/linux/sh/sys/procfs.h
--- ORIG/libc/sysdeps/unix/sysv/linux/sh/sys/procfs.h	2004-11-21 02:56:16.000000000 +0900
+++ LOCAL/libc/sysdeps/unix/sysv/linux/sh/sys/procfs.h	2009-02-26 19:43:41.000000000 +0900
@@ -1,4 +1,5 @@
-/* Copyright (C) 1996, 1997, 1999, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1999, 2004, 2009
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -24,12 +25,9 @@
    used on Linux.  */
 
 #include <features.h>
-#include <signal.h>
 #include <sys/time.h>
 #include <sys/types.h>
-#include <sys/ucontext.h>
 #include <sys/user.h>
-#include <asm/elf.h>
 
 __BEGIN_DECLS
 
diff -uprN ORIG/libc/sysdeps/unix/sysv/linux/sh/sys/user.h LOCAL/libc/sysdeps/unix/sysv/linux/sh/sys/user.h
--- ORIG/libc/sysdeps/unix/sysv/linux/sh/sys/user.h	2003-02-08 11:32:42.000000000 +0900
+++ LOCAL/libc/sysdeps/unix/sysv/linux/sh/sys/user.h	2009-02-26 19:43:30.000000000 +0900
@@ -1,4 +1,5 @@
-/* Copyright (C) 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2003, 2009
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -19,10 +20,49 @@
 #ifndef _SYS_USER_H
 #define _SYS_USER_H	1
 
-#include <features.h>
+#include <asm/ptrace.h>
 
-#include <asm/user.h>
-
-#undef start_thread
+/* asm/ptrace.h polutes the namespace.  */
+#undef PTRACE_GETREGS
+#undef PTRACE_SETREGS
+#undef PTRACE_GETFPREGS
+#undef PTRACE_SETFPREGS
+#undef PTRACE_GETFDPIC
+#undef PTRACE_GETFDPIC_EXEC
+#undef PTRACE_GETFDPIC_INTERP
+#undef	PTRACE_GETDSPREGS
+#undef	PTRACE_SETDSPREGS
+
+typedef unsigned long elf_greg_t;
+
+#define ELF_NGREG (sizeof (struct pt_regs) / sizeof (elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+struct user_fpu_struct
+  {
+    unsigned long fp_regs[16];
+    unsigned long xfp_regs[16];
+    unsigned long fpscr;
+    unsigned long fpul;
+  };
+typedef struct user_fpu_struct elf_fpregset_t;
+
+struct user
+  {
+    struct pt_regs regs;
+    struct user_fpu_struct fpu;
+    int u_fpvalid;
+    size_t u_tsize;
+    size_t u_dsize;
+    size_t u_ssize;
+    unsigned long start_code;
+    unsigned long start_data;
+    unsigned long start_stack;
+    long int signal;
+    unsigned long u_ar0;
+    struct user_fpu_struct *u_fpstate;
+    unsigned long magic;
+    char u_comm[32];
+  };
 
 #endif  /* sys/user.h */


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