patches/glibc/ports-2.10.1/390-cross-compile-nptl.patch
author Michael Hope <michael.hope@linaro.org>
Wed Oct 19 15:27:32 2011 +1300 (2011-10-19)
changeset 2739 f320e22f2cba
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@1625
     1
A little hack for cross-compiling NPTL
yann@1625
     2
yann@1625
     3
http://sourceware.org/ml/libc-alpha/2005-02/msg00043.html
yann@1625
     4
yann@1625
     5
diff -durN glibc-2.10.1.orig/nptl/sysdeps/pthread/configure glibc-2.10.1/nptl/sysdeps/pthread/configure
yann@1625
     6
--- glibc-2.10.1.orig/nptl/sysdeps/pthread/configure	2009-05-17 14:19:31.000000000 +0200
yann@1625
     7
+++ glibc-2.10.1/nptl/sysdeps/pthread/configure	2009-11-13 00:50:43.000000000 +0100
yann@1625
     8
@@ -78,6 +78,10 @@
yann@1625
     9
 fi
yann@1625
    10
 { echo "$as_me:$LINENO: result: $libc_cv_forced_unwind" >&5
yann@1625
    11
 echo "${ECHO_T}$libc_cv_forced_unwind" >&6; }
yann@1625
    12
+if test $libc_cv_forced_unwind = no -a $build_cpu != $host_cpu; then
yann@1625
    13
+  echo "$as_me:$LINENO: forcing libc_cv_forced_unwind = yes for cross-compile"
yann@1625
    14
+  libc_cv_forced_unwind=yes
yann@1625
    15
+fi
yann@1625
    16
 if test $libc_cv_forced_unwind = yes; then
yann@1625
    17
   cat >>confdefs.h <<\_ACEOF
yann@1625
    18
 #define HAVE_FORCED_UNWIND 1
yann@1625
    19
@@ -141,6 +145,10 @@
yann@1625
    20
 { echo "$as_me:$LINENO: result: $libc_cv_c_cleanup" >&5
yann@1625
    21
 echo "${ECHO_T}$libc_cv_c_cleanup" >&6; }
yann@1625
    22
   CFLAGS="$old_CFLAGS"
yann@1625
    23
+  if test $libc_cv_c_cleanup = no -a $build_cpu != $host_cpu; then
yann@1625
    24
+    echo "$as_me:$LINENO: result: forcing libc_cv_c_cleanup = yes for cross-compile"
yann@1625
    25
+    libc_cv_c_cleanup=yes
yann@1625
    26
+  fi
yann@1625
    27
   if test $libc_cv_c_cleanup = no; then
yann@1625
    28
     { { echo "$as_me:$LINENO: error: the compiler must support C cleanup handling" >&5
yann@1625
    29
 echo "$as_me: error: the compiler must support C cleanup handling" >&2;}
yann@1625
    30
diff -durN glibc-2.10.1.orig/nptl/sysdeps/pthread/configure.in glibc-2.10.1/nptl/sysdeps/pthread/configure.in
yann@1625
    31
--- glibc-2.10.1.orig/nptl/sysdeps/pthread/configure.in	2003-12-03 07:50:01.000000000 +0100
yann@1625
    32
+++ glibc-2.10.1/nptl/sysdeps/pthread/configure.in	2009-11-13 00:50:43.000000000 +0100
yann@1625
    33
@@ -28,6 +28,9 @@
yann@1625
    34
 struct _Unwind_Context *context;
yann@1625
    35
 _Unwind_GetCFA (context)],
yann@1625
    36
 libc_cv_forced_unwind=yes, libc_cv_forced_unwind=no)])
yann@1625
    37
+if test $libc_cv_forced_unwind = no -a $build_cpu != $host_cpu; then
yann@1625
    38
+  libc_cv_forced_unwind=yes
yann@1625
    39
+fi
yann@1625
    40
 if test $libc_cv_forced_unwind = yes; then
yann@1625
    41
   AC_DEFINE(HAVE_FORCED_UNWIND)
yann@1625
    42
 dnl Check for C cleanup handling.
yann@1625
    43
@@ -41,6 +44,9 @@
yann@1625
    44
   puts ("test")],
yann@1625
    45
 libc_cv_c_cleanup=yes, libc_cv_c_cleanup=no)])
yann@1625
    46
   CFLAGS="$old_CFLAGS"
yann@1625
    47
+  if test $libc_cv_c_cleanup = no -a $build_cpu != $host_cpu; then
yann@1625
    48
+    libc_cv_c_cleanup=yes
yann@1625
    49
+  fi
yann@1625
    50
   if test $libc_cv_c_cleanup = no; then
yann@1625
    51
     AC_MSG_ERROR([the compiler must support C cleanup handling])
yann@1625
    52
   fi