patches/glibc/2.9/510-sh-no-asm-user-header.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jan 17 23:06:02 2010 +0100 (2010-01-17)
changeset 1740 c57458bb354d
parent 1246 aa674ae58972
permissions -rw-r--r--
configure: do not require hg when configuring in an hg clone

When configuring in an hg clone, we need hg to compute the version string.
It can happen that users do not have Mercurial (eg. if they got a snapshot
rather that they did a full clone). In this case, we can still run, of
course, so simply fill the version string with a sufficiently explicit
value, that does not require hg. The date is a good candidate.
yann@1246
     1
2007-03-13  Mike Frysinger  <vapier@gentoo.org>
yann@1246
     2
yann@1246
     3
	* sysdeps/unix/sysv/linux/sh/sys/user.h: Copy Linux's asm-sh/user.h.
yann@1246
     4
yann@1246
     5
--- glibc-2_9/sysdeps/unix/sysv/linux/sh/sys/user.h
yann@1246
     6
+++ glibc-2_9/sysdeps/unix/sysv/linux/sh/sys/user.h
yann@1246
     7
@@ -19,10 +19,60 @@
yann@1246
     8
 #ifndef _SYS_USER_H
yann@1246
     9
 #define _SYS_USER_H	1
yann@1246
    10
 
yann@1246
    11
-#include <features.h>
yann@1246
    12
+#include <unistd.h>
yann@1246
    13
+#include <asm/ptrace.h>
yann@1246
    14
 
yann@1246
    15
-#include <asm/user.h>
yann@1246
    16
+/*
yann@1246
    17
+ * Core file format: The core file is written in such a way that gdb
yann@1246
    18
+ * can understand it and provide useful information to the user (under
yann@1246
    19
+ * linux we use the `trad-core' bfd).  The file contents are as follows:
yann@1246
    20
+ *
yann@1246
    21
+ *  upage: 1 page consisting of a user struct that tells gdb
yann@1246
    22
+ *	what is present in the file.  Directly after this is a
yann@1246
    23
+ *	copy of the task_struct, which is currently not used by gdb,
yann@1246
    24
+ *	but it may come in handy at some point.  All of the registers
yann@1246
    25
+ *	are stored as part of the upage.  The upage should always be
yann@1246
    26
+ *	only one page long.
yann@1246
    27
+ *  data: The data segment follows next.  We use current->end_text to
yann@1246
    28
+ *	current->brk to pick up all of the user variables, plus any memory
yann@1246
    29
+ *	that may have been sbrk'ed.  No attempt is made to determine if a
yann@1246
    30
+ *	page is demand-zero or if a page is totally unused, we just cover
yann@1246
    31
+ *	the entire range.  All of the addresses are rounded in such a way
yann@1246
    32
+ *	that an integral number of pages is written.
yann@1246
    33
+ *  stack: We need the stack information in order to get a meaningful
yann@1246
    34
+ *	backtrace.  We need to write the data from usp to
yann@1246
    35
+ *	current->start_stack, so we round each of these in order to be able
yann@1246
    36
+ *	to write an integer number of pages.
yann@1246
    37
+ */
yann@1246
    38
 
yann@1246
    39
-#undef start_thread
yann@1246
    40
+struct user_fpu_struct {
yann@1246
    41
+	unsigned long fp_regs[16];
yann@1246
    42
+	unsigned long xfp_regs[16];
yann@1246
    43
+	unsigned long fpscr;
yann@1246
    44
+	unsigned long fpul;
yann@1246
    45
+};
yann@1246
    46
+
yann@1246
    47
+struct user {
yann@1246
    48
+	struct pt_regs	regs;			/* entire machine state */
yann@1246
    49
+	struct user_fpu_struct fpu;	/* Math Co-processor registers  */
yann@1246
    50
+	int u_fpvalid;		/* True if math co-processor being used */
yann@1246
    51
+	size_t		u_tsize;		/* text size (pages) */
yann@1246
    52
+	size_t		u_dsize;		/* data size (pages) */
yann@1246
    53
+	size_t		u_ssize;		/* stack size (pages) */
yann@1246
    54
+	unsigned long	start_code;		/* text starting address */
yann@1246
    55
+	unsigned long	start_data;		/* data starting address */
yann@1246
    56
+	unsigned long	start_stack;		/* stack starting address */
yann@1246
    57
+	long int	signal;			/* signal causing core dump */
yann@1246
    58
+	struct regs *	u_ar0;			/* help gdb find registers */
yann@1246
    59
+	struct user_fpu_struct* u_fpstate;	/* Math Co-processor pointer */
yann@1246
    60
+	unsigned long	magic;			/* identifies a core file */
yann@1246
    61
+	char		u_comm[32];		/* user command name */
yann@1246
    62
+};
yann@1246
    63
+
yann@1246
    64
+#define NBPG			getpagesize()
yann@1246
    65
+#define UPAGES			1
yann@1246
    66
+#define HOST_TEXT_START_ADDR	(u.start_code)
yann@1246
    67
+#define HOST_DATA_START_ADDR	(u.start_data)
yann@1246
    68
+#define HOST_STACK_END_ADDR	(u.start_stack + u.u_ssize * NBPG)
yann@1246
    69
 
yann@1246
    70
 #endif  /* sys/user.h */