diff options
author | Khem Raj <raj.khem@gmail.com> | 2012-02-02 00:17:30 -0800 |
---|---|---|
committer | Saul Wold <sgw@linux.intel.com> | 2012-02-07 15:06:04 -0800 |
commit | 5d2c0b051072b3cee510dcad8d20fb26d3843f62 (patch) | |
tree | 5b4831bd683787db073d210719ae931f7c588519 /meta/recipes-core/uclibc/uclibc-0.9.33/powerpc_copysignl.patch | |
parent | c8a9ae7c047051958b8667e77288c5ac295766c6 (diff) | |
download | openembedded-core-5d2c0b051072b3cee510dcad8d20fb26d3843f62.tar.gz openembedded-core-5d2c0b051072b3cee510dcad8d20fb26d3843f62.tar.bz2 openembedded-core-5d2c0b051072b3cee510dcad8d20fb26d3843f62.tar.xz openembedded-core-5d2c0b051072b3cee510dcad8d20fb26d3843f62.zip |
uclibc: Upgrade recipes from 0.9.32 -> 0.9.33
Prefer 0.9.33 by default
Delete recipes for 0.9.32
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta/recipes-core/uclibc/uclibc-0.9.33/powerpc_copysignl.patch')
-rw-r--r-- | meta/recipes-core/uclibc/uclibc-0.9.33/powerpc_copysignl.patch | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.33/powerpc_copysignl.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/powerpc_copysignl.patch new file mode 100644 index 000000000..3fa10af4d --- /dev/null +++ b/meta/recipes-core/uclibc/uclibc-0.9.33/powerpc_copysignl.patch @@ -0,0 +1,113 @@ +Add ppc copysignl implementation + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Index: git/libc/sysdeps/linux/powerpc/Makefile.arch +=================================================================== +--- git.orig/libc/sysdeps/linux/powerpc/Makefile.arch ++++ git/libc/sysdeps/linux/powerpc/Makefile.arch +@@ -5,7 +5,7 @@ + # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. + # + +-CSRC := __syscall_error.c pread_write.c ioctl.c ++CSRC := __syscall_error.c pread_write.c ioctl.c copysignl.c + + ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y) + CSRC += posix_fadvise.c posix_fadvise64.c +Index: git/libc/sysdeps/linux/powerpc/copysignl.c +=================================================================== +--- /dev/null ++++ git/libc/sysdeps/linux/powerpc/copysignl.c +@@ -0,0 +1,89 @@ ++/* s_copysignl.c -- long double version of s_copysign.c. ++ * Conversion to long double by Ulrich Drepper, ++ * Cygnus Support, drepper@cygnus.com. ++ */ ++ ++/* ++ * ==================================================== ++ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. ++ * ++ * Developed at SunPro, a Sun Microsystems, Inc. business. ++ * Permission to use, copy, modify, and distribute this ++ * software is freely granted, provided that this notice ++ * is preserved. ++ * ==================================================== ++ */ ++ ++/* ++ * copysignl(long double x, long double y) ++ * copysignl(x,y) returns a value with the magnitude of x and ++ * with the sign bit of y. ++ */ ++ ++#include <endian.h> ++#include <stdint.h> ++ ++#if __FLOAT_WORD_ORDER == BIG_ENDIAN ++ ++typedef union ++{ ++ long double value; ++ struct ++ { ++ int sign_exponent:16; ++ unsigned int empty:16; ++ uint32_t msw; ++ uint32_t lsw; ++ } parts; ++} ieee_long_double_shape_type; ++ ++#endif ++ ++#if __FLOAT_WORD_ORDER == LITTLE_ENDIAN ++ ++typedef union ++{ ++ long double value; ++ struct ++ { ++ uint32_t lsw; ++ uint32_t msw; ++ int sign_exponent:16; ++ unsigned int empty:16; ++ } parts; ++} ieee_long_double_shape_type; ++ ++#endif ++ ++/* Get int from the exponent of a long double. */ ++ ++#define GET_LDOUBLE_EXP(exp,d) \ ++do { \ ++ ieee_long_double_shape_type ge_u; \ ++ ge_u.value = (d); \ ++ (exp) = ge_u.parts.sign_exponent; \ ++} while (0) ++ ++/* Set exponent of a long double from an int. */ ++ ++#define SET_LDOUBLE_EXP(d,exp) \ ++do { \ ++ ieee_long_double_shape_type se_u; \ ++ se_u.value = (d); \ ++ se_u.parts.sign_exponent = (exp); \ ++ (d) = se_u.value; \ ++} while (0) ++ ++long double copysignl(long double x, long double y); ++libc_hidden_proto(copysignl); ++ ++long double copysignl(long double x, long double y) ++{ ++ uint32_t es1,es2; ++ GET_LDOUBLE_EXP(es1,x); ++ GET_LDOUBLE_EXP(es2,y); ++ SET_LDOUBLE_EXP(x,(es1&0x7fff)|(es2&0x8000)); ++ return x; ++} ++ ++libc_hidden_def(copysignl); |