patches/glibc/2.9/460-alpha-glibc-2.5-no-asm-elf-header.patch
author Michael Hope <michael.hope@linaro.org>
Wed Oct 19 15:27:32 2011 +1300 (2011-10-19)
changeset 2739 f320e22f2cba
parent 1201 c9967a6e3b25
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@1201
     1
Original patch from: gentoo/src/patchsets/glibc/2.9/6016_all_alpha-glibc-2.5-no-asm-elf-header.patch
yann@1201
     2
yann@1201
     3
-= BEGIN original header =-
yann@1201
     4
2007-03-13  Mike Frysinger  <vapier@gentoo.org>
yann@1201
     5
yann@1201
     6
	* sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Copy some defines
yann@1201
     7
	from alpha's asm/elf.h
yann@1201
     8
yann@1201
     9
-= END original header =-
yann@1201
    10
yann@1201
    11
diff -durN glibc-2_9.orig/sysdeps/unix/sysv/linux/alpha/sys/procfs.h glibc-2_9/sysdeps/unix/sysv/linux/alpha/sys/procfs.h
yann@1201
    12
--- glibc-2_9.orig/sysdeps/unix/sysv/linux/alpha/sys/procfs.h	2001-07-06 06:56:13.000000000 +0200
yann@1201
    13
+++ glibc-2_9/sysdeps/unix/sysv/linux/alpha/sys/procfs.h	2009-02-02 22:01:33.000000000 +0100
yann@1201
    14
@@ -29,10 +29,23 @@
yann@1201
    15
 #include <sys/types.h>
yann@1201
    16
 #include <sys/ucontext.h>
yann@1201
    17
 #include <sys/user.h>
yann@1201
    18
-#include <asm/elf.h>
yann@1201
    19
 
yann@1201
    20
 __BEGIN_DECLS
yann@1201
    21
 
yann@1201
    22
+/*
yann@1201
    23
+ * The OSF/1 version of <sys/procfs.h> makes gregset_t 46 entries long.
yann@1201
    24
+ * I have no idea why that is so.  For now, we just leave it at 33
yann@1201
    25
+ * (32 general regs + processor status word). 
yann@1201
    26
+ */
yann@1201
    27
+#define ELF_NGREG	33
yann@1201
    28
+#define ELF_NFPREG	32
yann@1201
    29
+
yann@1201
    30
+typedef unsigned long elf_greg_t;
yann@1201
    31
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
yann@1201
    32
+
yann@1201
    33
+typedef double elf_fpreg_t;
yann@1201
    34
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
yann@1201
    35
+
yann@1201
    36
 struct elf_siginfo
yann@1201
    37
   {
yann@1201
    38
     int si_signo;			/* Signal number.  */