patches/glibc/2.7/270-sh-fix-procfs.patch
author Michael Hope <michael.hope@linaro.org>
Wed Oct 19 15:27:32 2011 +1300 (2011-10-19)
changeset 2739 f320e22f2cba
parent 962 2ba4393e0441
permissions -rw-r--r--
arch: add softfp support

Some architectures support a mixed hard/soft floating point, where
the compiler emits hardware floating point instructions, but passes
the operands in core (aka integer) registers.

For example, ARM supports this mode (to come in the next changeset).

Add support for softfp cross compilers to the GCC and GLIBC
configuration. Needed for Ubuntu and other distros that are softfp.

Signed-off-by: Michael Hope <michael.hope@linaro.org>
[yann.morin.1998@anciens.enib.fr: split the original patch]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@969
     1
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
yann@969
     2
--- glibc-2.7.orig/sysdeps/unix/sysv/linux/sh/sys/procfs.h	2004-11-20 18:56:16.000000000 +0100
yann@969
     3
+++ glibc-2.7/sysdeps/unix/sysv/linux/sh/sys/procfs.h	2008-10-24 11:21:15.000000000 +0200
yann@969
     4
@@ -29,10 +29,32 @@
yann@962
     5
 #include <sys/types.h>
yann@962
     6
 #include <sys/ucontext.h>
yann@962
     7
 #include <sys/user.h>
yann@962
     8
-#include <asm/elf.h>
yann@969
     9
 
yann@962
    10
 __BEGIN_DECLS
yann@969
    11
 
yann@969
    12
+/* BEGIN - UGLY HACK - YEM
yann@969
    13
+ * These definitions are copied from the Alpha file,
yann@969
    14
+ * and the register numbers are set accordingly to
yann@969
    15
+ * what I could find in the Linux kernel sources
yann@969
    16
+ * Highly dubious !!!!
yann@969
    17
+ * BIG FAT WARNING !!!
yann@969
    18
+ */
yann@969
    19
+
yann@969
    20
+/* Linux kernel says 16 (standards?) registers */
yann@969
    21
+#define ELF_NGREG  16
yann@969
    22
+/* Linux kernel says 16 floating point registers */
yann@969
    23
+#define ELF_NFPREG 16
yann@969
    24
+
yann@969
    25
+/* Copied from Alpha as is */
yann@969
    26
+typedef unsigned long elf_greg_t;
yann@969
    27
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
yann@969
    28
+
yann@969
    29
+/* Ditto */
yann@969
    30
+typedef double elf_fpreg_t;
yann@969
    31
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
yann@969
    32
+
yann@969
    33
+/* END - UGLY HACK - YEM */
yann@969
    34
+
yann@969
    35
 struct elf_siginfo
yann@969
    36
   {
yann@969
    37
     int si_signo;			/* Signal number.  */