diff options
author | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2009-03-08 11:16:57 +0000 |
---|---|---|
committer | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2009-03-08 11:16:57 +0000 |
commit | a4d865512ce53e4278291a6726fa2baedc60591e (patch) | |
tree | 1131e8ce1fab3bea61205b3f6360b52e92aa0e63 /patches/glibc | |
parent | 8d993f036a4859dc021284c04f2578d8e48c799d (diff) | |
download | crosstool-ng-a4d865512ce53e4278291a6726fa2baedc60591e.tar.gz crosstool-ng-a4d865512ce53e4278291a6726fa2baedc60591e.tar.bz2 crosstool-ng-a4d865512ce53e4278291a6726fa2baedc60591e.zip |
Add two patches agains glibc-2_9 to (try to) build for SuperH.
/trunk/patches/glibc/2_9/510-sh-no-asm-user-header.patch | 70 70 0 0 ++++++++++++++++++++++
/trunk/patches/glibc/2_9/520-sh-no-asm-elf-header.patch | 27 27 0 0 ++++++++
2 files changed, 97 insertions(+)
Diffstat (limited to 'patches/glibc')
-rw-r--r-- | patches/glibc/2_9/510-sh-no-asm-user-header.patch | 70 | ||||
-rw-r--r-- | patches/glibc/2_9/520-sh-no-asm-elf-header.patch | 27 |
2 files changed, 97 insertions, 0 deletions
diff --git a/patches/glibc/2_9/510-sh-no-asm-user-header.patch b/patches/glibc/2_9/510-sh-no-asm-user-header.patch new file mode 100644 index 00000000..78d5aca9 --- /dev/null +++ b/patches/glibc/2_9/510-sh-no-asm-user-header.patch @@ -0,0 +1,70 @@ +2007-03-13 Mike Frysinger <vapier@gentoo.org> + + * sysdeps/unix/sysv/linux/sh/sys/user.h: Copy Linux's asm-sh/user.h. + +--- glibc-2_9/sysdeps/unix/sysv/linux/sh/sys/user.h ++++ glibc-2_9/sysdeps/unix/sysv/linux/sh/sys/user.h +@@ -19,10 +19,60 @@ + #ifndef _SYS_USER_H + #define _SYS_USER_H 1 + +-#include <features.h> ++#include <unistd.h> ++#include <asm/ptrace.h> + +-#include <asm/user.h> ++/* ++ * Core file format: The core file is written in such a way that gdb ++ * can understand it and provide useful information to the user (under ++ * linux we use the `trad-core' bfd). The file contents are as follows: ++ * ++ * upage: 1 page consisting of a user struct that tells gdb ++ * what is present in the file. Directly after this is a ++ * copy of the task_struct, which is currently not used by gdb, ++ * but it may come in handy at some point. All of the registers ++ * are stored as part of the upage. The upage should always be ++ * only one page long. ++ * data: The data segment follows next. We use current->end_text to ++ * current->brk to pick up all of the user variables, plus any memory ++ * that may have been sbrk'ed. No attempt is made to determine if a ++ * page is demand-zero or if a page is totally unused, we just cover ++ * the entire range. All of the addresses are rounded in such a way ++ * that an integral number of pages is written. ++ * stack: We need the stack information in order to get a meaningful ++ * backtrace. We need to write the data from usp to ++ * current->start_stack, so we round each of these in order to be able ++ * to write an integer number of pages. ++ */ + +-#undef start_thread ++struct user_fpu_struct { ++ unsigned long fp_regs[16]; ++ unsigned long xfp_regs[16]; ++ unsigned long fpscr; ++ unsigned long fpul; ++}; ++ ++struct user { ++ struct pt_regs regs; /* entire machine state */ ++ struct user_fpu_struct fpu; /* Math Co-processor registers */ ++ int u_fpvalid; /* True if math co-processor being used */ ++ size_t u_tsize; /* text size (pages) */ ++ size_t u_dsize; /* data size (pages) */ ++ size_t u_ssize; /* stack size (pages) */ ++ unsigned long start_code; /* text starting address */ ++ unsigned long start_data; /* data starting address */ ++ unsigned long start_stack; /* stack starting address */ ++ long int signal; /* signal causing core dump */ ++ struct regs * u_ar0; /* help gdb find registers */ ++ struct user_fpu_struct* u_fpstate; /* Math Co-processor pointer */ ++ unsigned long magic; /* identifies a core file */ ++ char u_comm[32]; /* user command name */ ++}; ++ ++#define NBPG getpagesize() ++#define UPAGES 1 ++#define HOST_TEXT_START_ADDR (u.start_code) ++#define HOST_DATA_START_ADDR (u.start_data) ++#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) + + #endif /* sys/user.h */ diff --git a/patches/glibc/2_9/520-sh-no-asm-elf-header.patch b/patches/glibc/2_9/520-sh-no-asm-elf-header.patch new file mode 100644 index 00000000..2fceb489 --- /dev/null +++ b/patches/glibc/2_9/520-sh-no-asm-elf-header.patch @@ -0,0 +1,27 @@ +2007-03-13 Mike Frysinger <vapier@gentoo.org> + + * sysdeps/unix/sysv/linux/sh/sys/procfs.h: Copy Linux's asm-sh/elf.h types. + +--- glibc-2_9/sysdeps/unix/sysv/linux/sh/sys/procfs.h ++++ glibc-2_9/sysdeps/unix/sysv/linux/sh/sys/procfs.h +@@ -29,10 +29,19 @@ + #include <sys/types.h> + #include <sys/ucontext.h> + #include <sys/user.h> +-#include <asm/elf.h> + + __BEGIN_DECLS + ++/* ++ * ELF register definitions... ++ */ ++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]; ++ ++typedef struct user_fpu_struct elf_fpregset_t; ++ + struct elf_siginfo + { + int si_signo; /* Signal number. */ |