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