summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristoffer Ericson <kristoffer.ericson@gmail.com>2009-12-27 19:19:08 +0100
committerKristoffer Ericson <kristoffer.ericson@gmail.com>2009-12-27 19:30:23 +0100
commitcc1d08349a47ded18848a6f227b54446c908e080 (patch)
treecd519c1b2ca4359f880945e1927ec9713ef8194d
parentac829b49221dc15a7fecad2418fb3fb6ce0409b9 (diff)
Fix compilation of glibc 2.9 for SH3/SH4
Signed-off-by: Alex Ferguson <thoughtmonster@gmail.com> Signed-off-by: Kristoffer Ericson <kristoffer.ericson@gmail.com>
-rw-r--r--recipes/glibc/glibc-2.9/glibc-2.9-sh-fix.patch72
-rw-r--r--recipes/glibc/glibc_2.9.bb6
2 files changed, 76 insertions, 2 deletions
diff --git a/recipes/glibc/glibc-2.9/glibc-2.9-sh-fix.patch b/recipes/glibc/glibc-2.9/glibc-2.9-sh-fix.patch
new file mode 100644
index 0000000000..ed6da440b8
--- /dev/null
+++ b/recipes/glibc/glibc-2.9/glibc-2.9-sh-fix.patch
@@ -0,0 +1,72 @@
+diff -ru glibc-2.9.old/sysdeps/unix/sysv/linux/sh/sys/procfs.h glibc-2.9/sysdeps/unix/sysv/linux/sh/sys/procfs.h
+--- glibc-2.9.old/sysdeps/unix/sysv/linux/sh/sys/procfs.h 2004-11-20 19:56:16.000000000 +0200
++++ glibc-2.9/sysdeps/unix/sysv/linux/sh/sys/procfs.h 2009-12-21 14:51:57.338186996 +0200
+@@ -24,12 +24,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 -ru glibc-2.9.old/sysdeps/unix/sysv/linux/sh/sys/user.h glibc-2.9/sysdeps/unix/sysv/linux/sh/sys/user.h
+--- glibc-2.9.old/sysdeps/unix/sysv/linux/sh/sys/user.h 2003-02-08 04:32:42.000000000 +0200
++++ glibc-2.9/sysdeps/unix/sysv/linux/sh/sys/user.h 2009-12-21 14:53:00.708180633 +0200
+@@ -19,10 +19,49 @@
+ #ifndef _SYS_USER_H
+ #define _SYS_USER_H 1
+
+-#include <features.h>
++#include <asm/ptrace.h>
+
+-#include <asm/user.h>
++/* 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
+
+-#undef start_thread
++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 */
diff --git a/recipes/glibc/glibc_2.9.bb b/recipes/glibc/glibc_2.9.bb
index e675d8923f..5751a710e4 100644
--- a/recipes/glibc/glibc_2.9.bb
+++ b/recipes/glibc/glibc_2.9.bb
@@ -69,8 +69,10 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
"
# Build fails on sh3 and sh4 without additional patches
-SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1"
-SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1"
+SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1 \
+ file://glibc-2.9-sh-fix.patch;patch=1"
+SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1 \
+ file://glibc-2.9-sh-fix.patch;patch=1"
#powerpc patches to add support for soft-float
SRC_URI_append_powerpc= " file://powerpc-sqrt-hack.diff;patch=1"