eglibc: Upgrade recipes 2.14 -> 2.15
Add patch to provide __finite_sqrt functions for ppc (From OE-Core rev: 289d09176f8b6f66f6a7807b57f10e86939942f5) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
f164a95b43
commit
4b6df4f266
|
@ -0,0 +1,112 @@
|
|||
on ppc fixes the errors like below
|
||||
| ./.libs/libpulsecore-1.1.so: undefined reference to `__sqrt_finite'
|
||||
| collect2: ld returned 1 exit status
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
ChangeLog
|
||||
|
||||
2012-01-06 Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
* sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c: Add __*_finite alias.
|
||||
Remove cruft.
|
||||
* sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c: Ditto.
|
||||
* sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c: Ditto.
|
||||
* sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c: Ditto.
|
||||
|
||||
Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
|
||||
===================================================================
|
||||
--- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c 2012-01-06 18:07:42.296909187 -0800
|
||||
+++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c 2012-01-06 18:09:22.572914856 -0800
|
||||
@@ -39,14 +39,8 @@
|
||||
We find the actual square root and half of its reciprocal
|
||||
simultaneously. */
|
||||
|
||||
-#ifdef __STDC__
|
||||
double
|
||||
__ieee754_sqrt (double b)
|
||||
-#else
|
||||
-double
|
||||
-__ieee754_sqrt (b)
|
||||
- double b;
|
||||
-#endif
|
||||
{
|
||||
if (__builtin_expect (b > 0, 1))
|
||||
{
|
||||
@@ -132,3 +126,4 @@
|
||||
}
|
||||
return f_wash (b);
|
||||
}
|
||||
+strong_alias (__ieee754_sqrt, __sqrt_finite)
|
||||
Index: libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
|
||||
===================================================================
|
||||
--- libc.orig/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c 2012-01-06 18:10:37.068917644 -0800
|
||||
+++ libc/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c 2012-01-06 18:11:33.408920635 -0800
|
||||
@@ -37,14 +37,8 @@
|
||||
We find the reciprocal square root and use that to compute the actual
|
||||
square root. */
|
||||
|
||||
-#ifdef __STDC__
|
||||
float
|
||||
__ieee754_sqrtf (float b)
|
||||
-#else
|
||||
-float
|
||||
-__ieee754_sqrtf (b)
|
||||
- float b;
|
||||
-#endif
|
||||
{
|
||||
if (__builtin_expect (b > 0, 1))
|
||||
{
|
||||
@@ -99,3 +93,4 @@
|
||||
}
|
||||
return f_washf (b);
|
||||
}
|
||||
+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
|
||||
Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
|
||||
===================================================================
|
||||
--- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c 2012-01-06 18:11:51.460925644 -0800
|
||||
+++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c 2012-01-06 18:12:39.344924405 -0800
|
||||
@@ -39,14 +39,8 @@
|
||||
We find the actual square root and half of its reciprocal
|
||||
simultaneously. */
|
||||
|
||||
-#ifdef __STDC__
|
||||
double
|
||||
__ieee754_sqrt (double b)
|
||||
-#else
|
||||
-double
|
||||
-__ieee754_sqrt (b)
|
||||
- double b;
|
||||
-#endif
|
||||
{
|
||||
if (__builtin_expect (b > 0, 1))
|
||||
{
|
||||
@@ -132,3 +126,4 @@
|
||||
}
|
||||
return f_wash (b);
|
||||
}
|
||||
+strong_alias (__ieee754_sqrt, __sqrt_finite)
|
||||
Index: libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
|
||||
===================================================================
|
||||
--- libc.orig/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c 2012-01-06 18:13:00.892924586 -0800
|
||||
+++ libc/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c 2012-01-06 18:15:27.992931106 -0800
|
||||
@@ -37,14 +37,8 @@
|
||||
We find the reciprocal square root and use that to compute the actual
|
||||
square root. */
|
||||
|
||||
-#ifdef __STDC__
|
||||
float
|
||||
__ieee754_sqrtf (float b)
|
||||
-#else
|
||||
-float
|
||||
-__ieee754_sqrtf (b)
|
||||
- float b;
|
||||
-#endif
|
||||
{
|
||||
if (__builtin_expect (b > 0, 1))
|
||||
{
|
||||
@@ -99,3 +93,4 @@
|
||||
}
|
||||
return f_washf (b);
|
||||
}
|
||||
+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
|
|
@ -10,27 +10,33 @@ Upstream-Status: Inappropriate [OE-specific]
|
|||
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -1118,9 +1118,8 @@ if test -n "$sysheaders"; then
|
||||
SYSINCLUDES="$SYSINCLUDES \
|
||||
@@ -1094,11 +1094,10 @@ if test -n "$sysheaders"; then
|
||||
-isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
|
||||
if test -n "$CXX"; then
|
||||
CXX_SYSINCLUDES=
|
||||
- cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
|
||||
cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
|
||||
- cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
|
||||
+ cxxheaders=`$CXX -print-sysroot`"$prefix/include/c++" &&
|
||||
CXX_SYSINCLUDES="-isystem $cxxheaders \
|
||||
for d in include "$cxxmachine/include"; do
|
||||
- i=../../../../$d/c++/$cxxversion
|
||||
- cxxheaders=`$CXX -print-file-name="$i"` &&
|
||||
+ i="$prefix/$d/c++"
|
||||
+ cxxheaders=`$CXX -print-sysroot`"$i" &&
|
||||
test "x$cxxheaders" != x && test "x$i" != "x$cxxheaders" &&
|
||||
CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders \
|
||||
-isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
|
||||
fi
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -5544,9 +5544,8 @@ if test -n "$sysheaders"; then
|
||||
SYSINCLUDES="$SYSINCLUDES \
|
||||
@@ -5618,11 +5618,10 @@ if test -n "$sysheaders"; then
|
||||
-isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
|
||||
if test -n "$CXX"; then
|
||||
CXX_SYSINCLUDES=
|
||||
- cxxversion=`$CXX -dumpversion 2>&5` &&
|
||||
cxxmachine=`$CXX -dumpmachine 2>&5` &&
|
||||
- cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
|
||||
+ cxxheaders=`$CXX -print-sysroot`"$prefix/include/c++" &&
|
||||
CXX_SYSINCLUDES="-isystem $cxxheaders \
|
||||
for d in include "$cxxmachine/include"; do
|
||||
- i=../../../../$d/c++/$cxxversion
|
||||
- cxxheaders=`$CXX -print-file-name="$i"` &&
|
||||
+ i="$prefix/$d/c++"
|
||||
+ cxxheaders=`$CXX -print-sysroot`"$i" &&
|
||||
test "x$cxxheaders" != x && test "x$i" != "x$cxxheaders" &&
|
||||
CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders \
|
||||
-isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
|
||||
fi
|
|
@ -0,0 +1,29 @@
|
|||
--- a/sysdeps/x86_64/fpu/bits/fenv.h
|
||||
+++ b/sysdeps/x86_64/fpu/bits/fenv.h
|
||||
@@ -112,16 +112,24 @@ __NTH (feraiseexcept (int __excepts))
|
||||
{
|
||||
/* One example of a invalid operation is 0.0 / 0.0. */
|
||||
float __f = 0.0;
|
||||
-
|
||||
+# if defined __SSE_MATH__ || __WORDSIZE == 64
|
||||
__asm__ __volatile__ ("divss %0, %0 " : : "x" (__f));
|
||||
+# else
|
||||
+ __asm__ __volatile__ ("fdiv %%st, %%st(0); fwait"
|
||||
+ : "=t" (__f) : "0" (__f));
|
||||
+# endif
|
||||
(void) &__f;
|
||||
}
|
||||
if ((FE_DIVBYZERO & __excepts) != 0)
|
||||
{
|
||||
float __f = 1.0;
|
||||
float __g = 0.0;
|
||||
-
|
||||
+# if defined __SSE_MATH__ || __WORDSIZE == 64
|
||||
__asm__ __volatile__ ("divss %1, %0" : : "x" (__f), "x" (__g));
|
||||
+# else
|
||||
+ __asm__ __volatile__ ("fdivp %%st(1), %%st; fwait"
|
||||
+ : "=t" (__f) : "0" (__f), "u" (__g) : "st(1)");
|
||||
+# endif
|
||||
(void) &__f;
|
||||
}
|
||||
|
|
@ -1,12 +1,11 @@
|
|||
require eglibc.inc
|
||||
|
||||
SRCREV = "15870"
|
||||
SRCREV = "16540"
|
||||
|
||||
DEPENDS += "gperf-native"
|
||||
PR = "r3"
|
||||
PR_append = "+svnr${SRCPV}"
|
||||
|
||||
EGLIBC_BRANCH="eglibc-2_14"
|
||||
EGLIBC_BRANCH="eglibc-2_15"
|
||||
SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http \
|
||||
file://eglibc-svn-arm-lowlevellock-include-tls.patch \
|
||||
file://IO-acquire-lock-fix.patch \
|
||||
|
@ -20,6 +19,8 @@ SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http
|
|||
file://eglibc-rpc-export-again.patch \
|
||||
file://glibc-2.14-libdl-crash.patch \
|
||||
file://use-sysroot-cxx-headers.patch \
|
||||
file://x86_fenv.patch \
|
||||
file://ppc-sqrt_finite.patch \
|
||||
"
|
||||
LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \
|
||||
file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \
|
||||
|
@ -88,6 +89,15 @@ do_patch_append() {
|
|||
bb.build.exec_func('do_fix_readlib_c', d)
|
||||
}
|
||||
|
||||
# for mips eglibc now builds syscall tables for all abi's
|
||||
# so we make sure that we choose right march option which is
|
||||
# compatible with o32,n32 and n64 abi's
|
||||
# e.g. -march=mips32 is not compatible with n32 and n64 therefore
|
||||
# we filter it out in such case -march=from-abi which will be
|
||||
# mips1 when using o32 and mips3 when using n32/n64
|
||||
|
||||
TUNE_CCARGS_mips := "${@oe_filter_out('-march=mips32', '${TUNE_CCARGS}', d)}"
|
||||
|
||||
# We need to ensure that all of the i386 and x86_64 headers are identical
|
||||
# to support the multilib case. We do this by copying headers from x86_64
|
||||
# to i386 directories. Normally when hand building eglibc or a combined
|
Loading…
Reference in New Issue