⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 glibc-2.3.2-mips-user.patch

📁 linux下编译交叉工具链的工具源码
💻 PATCH
📖 第 1 页 / 共 2 页
字号:
--- libc/sysdeps/unix/sysv/linux/mips/sys/user.h 8 Feb 2002 16:21:00 -0000 1.1+++ libc/sysdeps/unix/sysv/linux/mips/sys/user.h 12 Apr 2003 09:13:13 -0000@@ -1,4 +1,4 @@-/* Copyright (C) 2002 Free Software Foundation, Inc.+/* Copyright (C) 2002, 2003 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@@ -23,7 +23,154 @@    too much into it.  Don't use it for anything other than GDB unless    you know what you are doing.  */ -#include <asm/reg.h>+/* #include <asm/reg.h> */+/* Instead of including the kernel header, that will vary depending on+   whether the 32- or the 64-bit kernel is installed, we paste its+   contents here.  Note that the fact that the file is inline here,+   instead of included separately, doesn't change in any way the+   licensing status of a program that includes user.h.  Since this is+   for gdb alone, and gdb is GPLed, no surprises here.  */+#if _MIPS_SIM == _MIPS_SIM_ABI32+/*+ * Various register offset definitions for debuggers, core file+ * examiners and whatnot.+ *+ * This file is subject to the terms and conditions of the GNU General Public+ * License.  See the file "COPYING" in the main directory of this archive+ * for more details.+ *+ * Copyright (C) 1995, 1999 by Ralf Baechle+ */+#ifndef __ASM_MIPS_REG_H+#define __ASM_MIPS_REG_H++/*+ * This defines/structures correspond to the register layout on stack -+ * if the order here is changed, it needs to be updated in+ * include/asm-mips/stackframe.h+ */+#define EF_REG0			6+#define EF_REG1			7+#define EF_REG2			8+#define EF_REG3			9+#define EF_REG4			10+#define EF_REG5			11+#define EF_REG6			12+#define EF_REG7			13+#define EF_REG8			14+#define EF_REG9			15+#define EF_REG10		16+#define EF_REG11		17+#define EF_REG12		18+#define EF_REG13		19+#define EF_REG14		20+#define EF_REG15		21+#define EF_REG16		22+#define EF_REG17		23+#define EF_REG18		24+#define EF_REG19		25+#define EF_REG20		26+#define EF_REG21		27+#define EF_REG22		28+#define EF_REG23		29+#define EF_REG24		30+#define EF_REG25		31+/*+ * k0/k1 unsaved+ */+#define EF_REG28		34+#define EF_REG29		35+#define EF_REG30		36+#define EF_REG31		37++/*+ * Saved special registers+ */+#define EF_LO			38+#define EF_HI			39++#define EF_CP0_EPC		40+#define EF_CP0_BADVADDR		41+#define EF_CP0_STATUS		42+#define EF_CP0_CAUSE		43++#define EF_SIZE			180	/* size in bytes */++#endif /* __ASM_MIPS_REG_H */++#else /* _MIPS_SIM != _MIPS_SIM_ABI32 */++/*+ * Various register offset definitions for debuggers, core file+ * examiners and whatnot.+ *+ * This file is subject to the terms and conditions of the GNU General Public+ * License.  See the file "COPYING" in the main directory of this archive+ * for more details.+ *+ * Copyright (C) 1995, 1999 Ralf Baechle+ * Copyright (C) 1995, 1999 Silicon Graphics+ */+#ifndef _ASM_REG_H+#define _ASM_REG_H++/*+ * This defines/structures correspond to the register layout on stack -+ * if the order here is changed, it needs to be updated in+ * include/asm-mips/stackframe.h+ */+#define EF_REG0			 0+#define EF_REG1			 1+#define EF_REG2			 2+#define EF_REG3			 3+#define EF_REG4			 4+#define EF_REG5			 5+#define EF_REG6			 6+#define EF_REG7			 7+#define EF_REG8			 8+#define EF_REG9			 9+#define EF_REG10		10+#define EF_REG11		11+#define EF_REG12		12+#define EF_REG13		13+#define EF_REG14		14+#define EF_REG15		15+#define EF_REG16		16+#define EF_REG17		17+#define EF_REG18		18+#define EF_REG19		19+#define EF_REG20		20+#define EF_REG21		21+#define EF_REG22		22+#define EF_REG23		23+#define EF_REG24		24+#define EF_REG25		25+/*+ * k0/k1 unsaved+ */+#define EF_REG28		28+#define EF_REG29		29+#define EF_REG30		30+#define EF_REG31		31++/*+ * Saved special registers+ */+#define EF_LO			32+#define EF_HI			33++#define EF_CP0_EPC		34+#define EF_CP0_BADVADDR		35+#define EF_CP0_STATUS		36+#define EF_CP0_CAUSE		37++#define EF_SIZE			304	/* size in bytes */++#endif /* _ASM_REG_H */++#endif /* _MIPS_SIM != _MIPS_SIM_ABI32 */++#if _MIPS_SIM == _MIPS_SIM_ABI32  struct user {@@ -39,6 +186,24 @@ struct user   unsigned long	magic;			/* identifies a core file */   char		u_comm[32];		/* user command name */ };++#else++struct user {+  __extension__ unsigned long	regs[EF_SIZE/8+64]; /* integer and fp regs */+  __extension__ unsigned long	u_tsize;	/* text size (pages) */+  __extension__ unsigned long	u_dsize;	/* data size (pages) */+  __extension__ unsigned long	u_ssize;	/* stack size (pages) */+  __extension__ unsigned long long start_code;	/* text starting address */+  __extension__ unsigned long long start_data;	/* data starting address */+  __extension__ unsigned long long start_stack;	/* stack starting address */+  __extension__ long long	signal;		/* signal causing core dump */+  __extension__ unsigned long long u_ar0;	/* help gdb find registers */+  __extension__ unsigned long long magic;	/* identifies a core file */+  char		u_comm[32];		/* user command name */+};++#endif  #define PAGE_SHIFT		12 #define PAGE_SIZE		(1UL << PAGE_SHIFT)--=-=-=-- Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/Red Hat GCC Developer                 aoliva@{redhat.com, gcc.gnu.org}CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}Free Software Evangelist                Professional serial bug killer--=-=-=--And the rediffed hunk:--- glibc-2.3.2/sysdeps/unix/sysv/linux/mips/sys/ucontext.h.old	2004-05-30 07:23:32.000000000 -0700+++ glibc-2.3.2/sysdeps/unix/sysv/linux/mips/sys/ucontext.h	2004-05-30 07:22:56.000000000 -0700@@ -29,43 +29,72 @@ #include <bits/sigcontext.h>  -/* Type for general register.  */-typedef unsigned long int greg_t;+/* Type for general register.  Even in o32 we assume 64-bit registers,+   like the kernel.  */+__extension__ typedef unsigned long long int greg_t;  /* Number of general registers.  */-#define NGREG	37-#define NFPREG	33+#define NGREG	32+#define NFPREG	32  /* Container for all general registers.  */-/* gregset_t must be an array.  The below declared array corresponds to:-typedef struct gregset {-	greg_t	g_regs[32];-	greg_t	g_hi;-	greg_t	g_lo;-	greg_t	g_pad[3];-} gregset_t;  */ typedef greg_t gregset_t[NGREG];  /* Container for all FPU registers.  */ typedef struct fpregset { 	union {-		double	fp_dregs[32];+		double	fp_dregs[NFPREG]; 		struct { 			float		_fp_fregs; 			unsigned int	_fp_pad;-		} fp_fregs[32];+		} fp_fregs[NFPREG]; 	} fp_r;-	unsigned int	fp_csr;-	unsigned int	fp_pad; } fpregset_t;   /* Context to describe whole processor state.  */+#if _MIPS_SIM == _MIPS_SIM_ABI32+/* Earlier versions of glibc for mips had an entirely different+   definition of mcontext_t, that didn't even resemble the+   corresponding kernel data structure.  Since all legitimate uses of+   ucontext_t in glibc mustn't have accessed anything beyond+   uc_mcontext and, even then, taking a pointer to it, casting it to+   sigcontext_t, and accessing it as such, which is what it has always+   been, this can still be rectified.  Fortunately, makecontext,+   [gs]etcontext et all have never been implemented.  */ typedef struct   {+    unsigned int regmask;+    unsigned int status;+    greg_t pc;     gregset_t gregs;     fpregset_t fpregs;+    unsigned int fp_owned;+    unsigned int fpc_csr;+    unsigned int fpc_eir;+    unsigned int used_math;+    unsigned int ssflags;+    greg_t mdhi;+    greg_t mdlo;+    unsigned int cause;+    unsigned int badvaddr;   } mcontext_t;+#else+typedef struct+  {+    gregset_t gregs;+    fpregset_t fpregs;+    greg_t mdhi;+    greg_t mdlo;+    greg_t pc;+    unsigned int status;+    unsigned int fpc_csr;+    unsigned int fpc_eir;+    unsigned int used_math;+    unsigned int cause;+    unsigned int badvaddr;+  } mcontext_t;+#endif  /* Userlevel context.  */ typedef struct ucontext

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -