patches/glibc/ports-2.10.1/600-mips_librt-mips.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>
     1 we kind of screwed ourselves into a corner by having the clock symbols
     2 exported only with the glibc-2.0 version ... this patch fixes the
     3 export so all new binaries built against librt will use the correct
     4 glibc-2.2 symbol version
     5 
     6 one day, we'll just drop this on the floor (maybe after 2006.1)
     7 
     8 diff -durN glibc-2.10.1.orig/Versions.def glibc-2.10.1/Versions.def
     9 --- glibc-2.10.1.orig/Versions.def	2008-12-03 05:19:06.000000000 +0100
    10 +++ glibc-2.10.1/Versions.def	2009-11-13 00:51:27.000000000 +0100
    11 @@ -98,6 +98,7 @@
    12    GLIBC_PRIVATE
    13  }
    14  librt {
    15 +  GLIBC_2.0
    16    GLIBC_2.1
    17    GLIBC_2.2
    18    GLIBC_2.3
    19 diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/unix/sysv/linux/mips/Versions glibc-2.10.1/glibc-ports-2.10.1/sysdeps/unix/sysv/linux/mips/Versions
    20 --- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/unix/sysv/linux/mips/Versions	2009-05-16 10:36:20.000000000 +0200
    21 +++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/unix/sysv/linux/mips/Versions	2009-11-13 00:51:27.000000000 +0100
    22 @@ -35,3 +35,9 @@
    23      _test_and_set;
    24    }
    25  }
    26 +librt {
    27 +  GLIBC_2.0 {
    28 +    # c*
    29 +    clock_gettime; clock_settime;
    30 +  }
    31 +}
    32 diff -durN glibc-2.10.1.orig/ports/sysdeps/unix/sysv/linux/mips/Versions glibc-2.10.1/ports/sysdeps/unix/sysv/linux/mips/Versions
    33 diff -durN glibc-2.10.1.orig/sysdeps/unix/clock_gettime.c glibc-2.10.1/sysdeps/unix/clock_gettime.c
    34 --- glibc-2.10.1.orig/sysdeps/unix/clock_gettime.c	2007-07-28 22:36:04.000000000 +0200
    35 +++ glibc-2.10.1/sysdeps/unix/clock_gettime.c	2009-11-13 00:51:27.000000000 +0100
    36 @@ -23,6 +23,7 @@
    37  #include <sys/time.h>
    38  #include <libc-internal.h>
    39  #include <ldsodefs.h>
    40 +#include <shlib-compat.h>
    41  
    42  
    43  #if HP_TIMING_AVAIL
    44 @@ -90,7 +91,7 @@
    45  
    46  /* Get current value of CLOCK and store it in TP.  */
    47  int
    48 -clock_gettime (clockid_t clock_id, struct timespec *tp)
    49 +__clock_gettime (clockid_t clock_id, struct timespec *tp)
    50  {
    51    int retval = -1;
    52  
    53 @@ -133,4 +134,10 @@
    54  
    55    return retval;
    56  }
    57 -librt_hidden_def (clock_gettime)
    58 +versioned_symbol (librt, __clock_gettime, clock_gettime, GLIBC_2_2);
    59 +librt_hidden_ver (__clock_gettime, clock_gettime)
    60 +
    61 +#if defined __mips__ && defined SHARED
    62 +strong_alias (__clock_gettime, __mips_clock_gettime)
    63 +compat_symbol (librt, __mips_clock_gettime, clock_gettime, GLIBC_2_0);
    64 +#endif
    65 diff -durN glibc-2.10.1.orig/sysdeps/unix/clock_settime.c glibc-2.10.1/sysdeps/unix/clock_settime.c
    66 --- glibc-2.10.1.orig/sysdeps/unix/clock_settime.c	2007-08-14 05:19:33.000000000 +0200
    67 +++ glibc-2.10.1/sysdeps/unix/clock_settime.c	2009-11-13 00:51:27.000000000 +0100
    68 @@ -21,6 +21,7 @@
    69  #include <sys/time.h>
    70  #include <libc-internal.h>
    71  #include <ldsodefs.h>
    72 +#include <shlib-compat.h>
    73  
    74  
    75  #if HP_TIMING_AVAIL && !defined HANDLED_CPUTIME
    76 @@ -73,7 +74,7 @@
    77  
    78  /* Set CLOCK to value TP.  */
    79  int
    80 -clock_settime (clockid_t clock_id, const struct timespec *tp)
    81 +__clock_settime (clockid_t clock_id, const struct timespec *tp)
    82  {
    83    int retval;
    84  
    85 @@ -125,3 +126,9 @@
    86  
    87    return retval;
    88  }
    89 +versioned_symbol (librt, __clock_settime, clock_settime, GLIBC_2_2);
    90 +
    91 +#if defined __mips__ && defined SHARED
    92 +strong_alias (__clock_settime, __mips_clock_settime)
    93 +compat_symbol (librt, __mips_clock_settime, clock_settime, GLIBC_2_0);
    94 +#endif