diff --git a/glibc-fedora.patch b/glibc-fedora.patch index 7a62d88..2f44095 100644 --- a/glibc-fedora.patch +++ b/glibc-fedora.patch @@ -2111,6 +2111,9 @@ Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S: Likewise. + * sysdeps/powerpc/fpu/tst-setcontext-fpscr.c (_SET_DI_FPSCR): Likewise. + * sysdeps/powerpc/fpu/fenv_libc.h (fesetenv_register, + relax_fenv_state): Likewise. --- libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S.jj 2008-11-17 03:49:06.000000000 +0100 +++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S 2009-02-18 22:55:07.000000000 +0100 @@ -2240,3 +2243,51 @@ # endif /* _ARCH_PWR6 */ lfd fp1,_UC_FREGS+(1*8)(r31) lfd fp2,_UC_FREGS+(2*8)(r31) +--- libc/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c.jj 2009-01-30 21:27:24.000000000 +0100 ++++ libc/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c 2009-02-18 23:40:01.000000000 +0100 +@@ -111,7 +111,11 @@ typedef unsigned int si_fpscr_t __attrib + tmp __attribute__ ((__aligned__(8))); \ + tmp.fpscr = __fpscr; \ + /* Set the entire 64-bit FPSCR. */ \ +- __asm__ ("lfd%U0 0,%0; mtfsf 255,0,1,0" : : "m" (tmp.d) : "fr0"); \ ++ __asm__ ("lfd%U0 0,%0; " \ ++ ".machine push; " \ ++ ".machine \"power6\"; " \ ++ "mtfsf 255,0,1,0; " \ ++ ".machine pop" : : "m" (tmp.d) : "fr0"); \ + tmp.d = 0; \ + __asm__("lfd%U0 0,%0" : : "m" (tmp.d) : "fr0"); \ + } +--- libc/sysdeps/powerpc/fpu/fenv_libc.h.jj 2008-11-17 02:32:11.000000000 +0100 ++++ libc/sysdeps/powerpc/fpu/fenv_libc.h 2009-02-18 23:42:15.000000000 +0100 +@@ -1,5 +1,5 @@ + /* Internal libc stuff for floating point environment routines. +- Copyright (C) 1997, 2006, 2008 Free Software Foundation, Inc. ++ Copyright (C) 1997, 2006, 2008, 2009 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -39,7 +39,10 @@ libm_hidden_proto (__fe_nomask_env) + do { \ + double d = (env); \ + if(GLRO(dl_hwcap) & PPC_FEATURE_HAS_DFP) \ +- asm volatile ("mtfsf 0xff,%0,1,0" : : "f" (d)); \ ++ asm volatile (".machine push; " \ ++ ".machine \"power6\"; " \ ++ "mtfsf 0xff,%0,1,0; " \ ++ ".machine pop" : : "f" (d)); \ + else \ + asm volatile ("mtfsf 0xff,%0" : : "f" (d)); \ + } while(0) +@@ -52,8 +55,9 @@ libm_hidden_proto (__fe_nomask_env) + functions. */ + #define relax_fenv_state() \ + do { \ +- if(GLRO(dl_hwcap) & PPC_FEATURE_HAS_DFP) \ +- asm ("mtfsfi 7,0,1"); \ ++ if (GLRO(dl_hwcap) & PPC_FEATURE_HAS_DFP) \ ++ asm (".machine push; .machine \"power6\"; " \ ++ "mtfsfi 7,0,1; .machine pop"); \ + asm ("mtfsfi 7,0"); \ + } while(0) + diff --git a/glibc.spec b/glibc.spec index d9f122e..e19d574 100644 --- a/glibc.spec +++ b/glibc.spec @@ -23,7 +23,7 @@ Summary: The GNU libc libraries Name: glibc Version: 2.9.90 -Release: 5 +Release: 6 # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries. # Things that are linked directly into dynamically linked programs # and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional @@ -1013,7 +1013,7 @@ rm -f *.filelist* %endif %changelog -* Wed Feb 18 2009 Jakub Jelinek 2.9.90-5 +* Wed Feb 18 2009 Jakub Jelinek 2.9.90-6 - update from trunk - adjust for i586 + i686 from i386 + i686 build - split static libraries into glibc-static subpackage