diff -u eglibc-2.15/debian/changelog eglibc-2.15/debian/changelog --- eglibc-2.15/debian/changelog +++ eglibc-2.15/debian/changelog @@ -1,3 +1,10 @@ +eglibc (2.15-0ubuntu10.5~ppa1) precise; urgency=low + + * Check __SSE_MATH__ before using divss to support -m32, backported + from the trunk. LP: #1165387. + + -- Matthias Klose Sat, 06 Apr 2013 14:21:51 +0200 + eglibc (2.15-0ubuntu10.4) precise; urgency=low * Add patch ubuntu/local-disable-nscd-netgroup-caching.diff to diff -u eglibc-2.15/debian/patches/series eglibc-2.15/debian/patches/series --- eglibc-2.15/debian/patches/series +++ eglibc-2.15/debian/patches/series @@ -188,0 +189 @@ +any/cvs-check-__SSE_MATH__-in-feraiseexcept.diff only in patch2: unchanged: --- eglibc-2.15.orig/debian/patches/any/cvs-check-__SSE_MATH__-in-feraiseexcept.diff +++ eglibc-2.15/debian/patches/any/cvs-check-__SSE_MATH__-in-feraiseexcept.diff @@ -0,0 +1,35 @@ +BZ #14117 http://sourceware.org/ml/libc-alpha/2012-05/msg01999.html + +2012-06-06 H.J. Lu + + * sysdeps/x86_64/fpu/bits/fenv.h (feraiseexcept): Check + __SSE_MATH__. + +--- a/sysdeps/x86_64/fpu/bits/fenv.h ++++ b/sysdeps/x86_64/fpu/bits/fenv.h +@@ -113,7 +113,12 @@ + /* One example of a invalid operation is 0.0 / 0.0. */ + float __f = 0.0; + ++# ifdef __SSE_MATH__ + __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) +@@ -121,7 +126,12 @@ + float __f = 1.0; + float __g = 0.0; + ++# ifdef __SSE_MATH__ + __asm__ __volatile__ ("divss %1, %0" : : "x" (__f), "x" (__g)); ++# else ++ __asm__ __volatile__ ("fdivp %%st, %%st(1); fwait" ++ : "=t" (__f) : "0" (__f), "u" (__g) : "st(1)"); ++# endif + (void) &__f; + } +