diff options
author | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2008-10-22 20:50:10 +0000 |
---|---|---|
committer | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2008-10-22 20:50:10 +0000 |
commit | c15b9fb7ea698d49665b4a04b18e6f785b895a14 (patch) | |
tree | 3537a4cf88fedb6aa3355b929fdfacf8059971a9 /patches/glibc | |
parent | 9d4c07f32f11187d471f05cd2165e6adbd4240a0 (diff) | |
download | crosstool-ng-c15b9fb7ea698d49665b4a04b18e6f785b895a14.tar.gz crosstool-ng-c15b9fb7ea698d49665b4a04b18e6f785b895a14.tar.bz2 crosstool-ng-c15b9fb7ea698d49665b4a04b18e6f785b895a14.zip |
Make Super-H finally compile a complete (C-only) toolchain:
- new, un-tested patches
- an sh4 sample to work on, and to try to reproduce later.
/trunk/patches/glibc/2.7/250-sh-chop-linux-version.patch | 49 49 0 0 ++
/trunk/patches/glibc/2.7/240-sh-lowlevellock-asm.patch | 56 56 0 0 +++
/trunk/patches/glibc/2.7/270-sh-fix-procfs.patch | 11 11 0 0 +
/trunk/patches/glibc/2.7/280-sh-fix-kernel-heders-location.patch | 23 23 0 0 +
/trunk/patches/glibc/2.7/260-sh-syscall-error-path.patch | 26 26 0 0 +
/trunk/samples/sh4-unknown-linux-gnu/crosstool.config | 311 311 0 0 ++++++++++++++
/trunk/samples/sh4-unknown-linux-gnu/reported.by | 3 3 0 0 +
7 files changed, 479 insertions(+)
Diffstat (limited to 'patches/glibc')
-rw-r--r-- | patches/glibc/2.7/240-sh-lowlevellock-asm.patch | 56 | ||||
-rw-r--r-- | patches/glibc/2.7/250-sh-chop-linux-version.patch | 49 | ||||
-rw-r--r-- | patches/glibc/2.7/260-sh-syscall-error-path.patch | 26 | ||||
-rw-r--r-- | patches/glibc/2.7/270-sh-fix-procfs.patch | 11 | ||||
-rw-r--r-- | patches/glibc/2.7/280-sh-fix-kernel-heders-location.patch | 23 |
5 files changed, 165 insertions, 0 deletions
diff --git a/patches/glibc/2.7/240-sh-lowlevellock-asm.patch b/patches/glibc/2.7/240-sh-lowlevellock-asm.patch new file mode 100644 index 00000000..dec03909 --- /dev/null +++ b/patches/glibc/2.7/240-sh-lowlevellock-asm.patch @@ -0,0 +1,56 @@ +--- glibc-2.7/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S.orig 2007-08-03 16:44:15.000000000 +0100 ++++ glibc-2.7/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S 2008-08-19 21:08:19.000000000 +0100 +@@ -76,7 +76,7 @@ + add tmp2, tmp ; \ + mov.l @tmp, tmp2 ; \ + bra 98f ; \ +- mov #FUTEX_PRIVATE_FLAG, tmp ++ mov #FUTEX_PRIVATE_FLAG, tmp ; \ + 99: .word PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \ + 98: extu.b tmp, tmp ; \ + xor tmp, reg ; \ +@@ -88,7 +88,7 @@ + add tmp2, tmp ; \ + mov.l @tmp, tmp2 ; \ + bra 98f ; \ +- mov #FUTEX_PRIVATE_FLAG, tmp ++ mov #FUTEX_PRIVATE_FLAG, tmp ; \ + 99: .word PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \ + 98: extu.b tmp, tmp ; \ + xor tmp, reg ; \ +@@ -96,13 +96,13 @@ + mov #FUTEX_WAIT, tmp ; \ + or tmp, reg + # endif +-# define LOAD_FUTEX_WAKE(reg,tmp) \ ++# define LOAD_FUTEX_WAKE(reg,tmp,tmp2) \ + stc gbr, tmp ; \ + mov.w 99f, tmp2 ; \ + add tmp2, tmp ; \ + mov.l @tmp, tmp2 ; \ + bra 98f ; \ +- mov #FUTEX_PRIVATE_FLAG, tmp ++ mov #FUTEX_PRIVATE_FLAG, tmp ; \ + 99: .word PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \ + 98: extu.b tmp, tmp ; \ + xor tmp, reg ; \ +--- glibc-2.7/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S.orig 2007-08-03 16:44:57.000000000 +0100 ++++ glibc-2.7/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S 2008-08-19 21:08:22.000000000 +0100 +@@ -42,7 +42,7 @@ + add tmp2, tmp ; \ + mov.l @tmp, tmp2 ; \ + bra 98f ; \ +- mov #FUTEX_PRIVATE_FLAG, tmp ++ mov #FUTEX_PRIVATE_FLAG, tmp ; \ + 99: .word PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \ + 98: extu.b tmp, tmp ; \ + xor tmp, reg ; \ +@@ -54,7 +54,7 @@ + add tmp2, tmp ; \ + mov.l @tmp, tmp2 ; \ + bra 98f ; \ +- mov #FUTEX_PRIVATE_FLAG, tmp ++ mov #FUTEX_PRIVATE_FLAG, tmp ; \ + 99: .word PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \ + 98: extu.b tmp, tmp ; \ + xor tmp, reg ; \ diff --git a/patches/glibc/2.7/250-sh-chop-linux-version.patch b/patches/glibc/2.7/250-sh-chop-linux-version.patch new file mode 100644 index 00000000..7d0062ba --- /dev/null +++ b/patches/glibc/2.7/250-sh-chop-linux-version.patch @@ -0,0 +1,49 @@ +--- glibc-2.7/sysdeps/unix/sysv/linux/dl-osinfo.h.orig 2007-09-15 23:54:08.000000000 +0100 ++++ glibc-2.7/sysdeps/unix/sysv/linux/dl-osinfo.h 2008-08-20 09:26:26.000000000 +0100 +@@ -83,6 +83,10 @@ + int parts; + char *cp; + struct utsname uts; ++ int dotsfound = 0; ++ int versionindex = 0; ++ char *choppoint; ++ + + /* Try the uname system call. */ + if (__uname (&uts)) +@@ -102,8 +106,34 @@ + else + buf = uts.release; + ++ /* We are only interested in the first three kernel numbers, so */ ++ /* chop off anything past that: */ ++ ++ choppoint = buf; ++ while (1) ++ { ++ versionindex++; ++ if (versionindex == 63) break; ++ if (*choppoint == '.') dotsfound++; ++ choppoint++; ++ if (dotsfound == 2) ++ { ++ if (*choppoint == '0' || *choppoint == '1' ++ || *choppoint == '2' || *choppoint == '3' ++ || *choppoint == '4' || *choppoint == '5' ++ || *choppoint == '6' || *choppoint == '7' ++ || *choppoint == '8' || *choppoint == '9') ++ continue; ++ else ++ { ++ *choppoint = 0; ++ break; ++ } ++ } ++ } ++ + /* Now convert it into a number. The string consists of at most +- three parts. */ ++ three parts. Now it does, anyway. ;-) */ + version = 0; + parts = 0; + cp = buf; diff --git a/patches/glibc/2.7/260-sh-syscall-error-path.patch b/patches/glibc/2.7/260-sh-syscall-error-path.patch new file mode 100644 index 00000000..e293bbfe --- /dev/null +++ b/patches/glibc/2.7/260-sh-syscall-error-path.patch @@ -0,0 +1,26 @@ +--- glibc-2.7/sysdeps/unix/sysv/linux/sh/sysdep.S.orig 2005-12-30 22:16:43.000000000 +0000 ++++ glibc-2.7/sysdeps/unix/sysv/linux/sh/sysdep.S 2008-08-19 22:33:14.000000000 +0100 +@@ -32,3 +32,13 @@ + + #define __syscall_error __syscall_error_1 + #include <sysdeps/unix/sh/sysdep.S> ++ ++ .data ++ .align 3 ++ .globl ___fpscr_values ++ .type ___fpscr_values, @object ++ .size ___fpscr_values, 8 ++___fpscr_values: ++ .long 0 ++ .long 0x80000 ++weak_alias (___fpscr_values, __fpscr_values) +--- glibc-2.7/sysdeps/unix/sysv/linux/sh/Versions.orig 2003-09-01 05:05:09.000000000 +0100 ++++ glibc-2.7/sysdeps/unix/sysv/linux/sh/Versions 2008-08-19 22:33:14.000000000 +0100 +@@ -2,6 +2,7 @@ + GLIBC_2.2 { + # functions used in other libraries + __xstat64; __fxstat64; __lxstat64; ++ __fpscr_values; + + # a* + alphasort64; diff --git a/patches/glibc/2.7/270-sh-fix-procfs.patch b/patches/glibc/2.7/270-sh-fix-procfs.patch new file mode 100644 index 00000000..f45ab5eb --- /dev/null +++ b/patches/glibc/2.7/270-sh-fix-procfs.patch @@ -0,0 +1,11 @@ +--- a/sysdeps/unix/sysv/linux/sh/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/sh/sys/procfs.h +@@ -29,7 +29,6 @@ + #include <sys/types.h> + #include <sys/ucontext.h> + #include <sys/user.h> +-#include <asm/elf.h> + + __BEGIN_DECLS + + diff --git a/patches/glibc/2.7/280-sh-fix-kernel-heders-location.patch b/patches/glibc/2.7/280-sh-fix-kernel-heders-location.patch new file mode 100644 index 00000000..0c5caa50 --- /dev/null +++ b/patches/glibc/2.7/280-sh-fix-kernel-heders-location.patch @@ -0,0 +1,23 @@ +diff -durN glibc-2.7.orig/sysdeps/unix/sysv/linux/sh/sys/procfs.h glibc-2.7/sysdeps/unix/sysv/linux/sh/sys/procfs.h +--- glibc-2.7.orig/sysdeps/unix/sysv/linux/sh/sys/procfs.h 2008-10-22 21:23:32.000000000 +0200 ++++ glibc-2.7/sysdeps/unix/sysv/linux/sh/sys/procfs.h 2008-10-22 21:41:54.000000000 +0200 +@@ -29,6 +29,7 @@ + #include <sys/types.h> + #include <sys/ucontext.h> + #include <sys/user.h> ++#include <asm/ptrace.h> + + __BEGIN_DECLS + +diff -durN glibc-2.7.orig/sysdeps/unix/sysv/linux/sh/sys/user.h glibc-2.7/sysdeps/unix/sysv/linux/sh/sys/user.h +--- glibc-2.7.orig/sysdeps/unix/sysv/linux/sh/sys/user.h 2008-10-22 21:23:32.000000000 +0200 ++++ glibc-2.7/sysdeps/unix/sysv/linux/sh/sys/user.h 2008-10-22 21:33:34.000000000 +0200 +@@ -21,8 +21,6 @@ + + #include <features.h> + +-#include <asm/user.h> +- + #undef start_thread + + #endif /* sys/user.h */ |