This commit is contained in:
Jakub Jelinek 2009-03-09 15:03:51 +00:00
parent 37921a2866
commit 268a86f75e
6 changed files with 206 additions and 61 deletions

View File

@ -1,2 +1,2 @@
glibc-20090218T1534.tar.bz2
glibc-fedora-20090218T1534.tar.bz2
glibc-20090309T1421.tar.bz2
glibc-fedora-20090309T1421.tar.bz2

View File

@ -2101,3 +2101,193 @@
cfi_startproc;
PSEUDO_END (BP_SYM (__clone))
2009-02-18 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S: Use
.machine push; .machine "power6" and .machine pop around mtfsf
insns outside of _ARCH_PWR6 define.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S:
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
@@ -1,5 +1,6 @@
/* Switch to context.
- Copyright (C) 2002, 2004, 2005, 2006, 2008 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005, 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
@@ -86,6 +87,8 @@ ENTRY(__novec_setcontext)
/* Use the extended four-operand version of the mtfsf insn. */
mtfsf 0xff,fp0,1,0
# else
+ .machine push
+ .machine "power6"
/* Availability of DFP indicates a 64-bit FPSCR. */
andi. r6,r5,PPC_FEATURE_HAS_DFP
beq 5f
@@ -96,6 +99,7 @@ ENTRY(__novec_setcontext)
5:
mtfsf 0xff,fp0
6:
+ .machine pop
# endif /* _ARCH_PWR6 */
lfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r31)
lfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r31)
@@ -374,6 +378,8 @@ L(has_no_vec):
/* Use the extended four-operand version of the mtfsf insn. */
mtfsf 0xff,fp0,1,0
# else
+ .machine push
+ .machine "power6"
/* Availability of DFP indicates a 64-bit FPSCR. */
andi. r6,r5,PPC_FEATURE_HAS_DFP
beq 7f
@@ -384,6 +390,7 @@ L(has_no_vec):
7:
mtfsf 0xff,fp0
8:
+ .machine pop
# endif /* _ARCH_PWR6 */
lfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r31)
lfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r31)
--- libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S.jj 2008-11-17 03:49:30.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S 2009-02-18 22:55:37.000000000 +0100
@@ -1,5 +1,6 @@
/* Save current context and install the given one.
- Copyright (C) 2002, 2004, 2005, 2006, 2008 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005, 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
@@ -180,6 +181,8 @@ ENTRY(__novec_swapcontext)
/* Use the extended four-operand version of the mtfsf insn. */
mtfsf 0xff,fp0,1,0
# else
+ .machine push
+ .machine "power6"
/* Availability of DFP indicates a 64-bit FPSCR. */
andi. r6,r8,PPC_FEATURE_HAS_DFP
beq 5f
@@ -190,6 +193,7 @@ ENTRY(__novec_swapcontext)
5:
mtfsf 0xff,fp0
6:
+ .machine pop
#endif /* _ARCH_PWR6 */
lfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r31)
lfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r31)
@@ -672,6 +676,8 @@ L(has_no_vec2):
/* Use the extended four-operand version of the mtfsf insn. */
mtfsf 0xff,fp0,1,0
# else
+ .machine push
+ .machine "power6"
/* Availability of DFP indicates a 64-bit FPSCR. */
andi. r6,r8,PPC_FEATURE_HAS_DFP
beq 7f
@@ -682,6 +688,7 @@ L(has_no_vec2):
7:
mtfsf 0xff,fp0
8:
+ .machine pop
#endif /* _ARCH_PWR6 */
lfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r31)
lfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r31)
--- libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S.jj 2009-01-30 21:30:33.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S 2009-02-18 22:52:48.000000000 +0100
@@ -430,6 +430,8 @@ ENTRY(__CONTEXT_FUNC_NAME)
/* Use the extended four-operand version of the mtfsf insn. */
mtfsf 0xff,fp31,1,0
# else
+ .machine push
+ .machine "power6"
/* Availability of DFP indicates a 64-bit FPSCR. */
andi. r6,r7,PPC_FEATURE_HAS_DFP
beq 7f
@@ -438,7 +440,7 @@ ENTRY(__CONTEXT_FUNC_NAME)
b 8f
/* Continue to operate on the FPSCR as if it were 32-bits. */
7: mtfsf 0xff,fp31
-8:
+8: .machine pop
#endif /* _ARCH_PWR6 */
lfd fp1,_UC_FREGS+(1*8)(r31)
lfd fp2,_UC_FREGS+(2*8)(r31)
--- libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S.jj 2009-01-30 21:29:24.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S 2009-02-18 22:52:39.000000000 +0100
@@ -204,6 +204,8 @@ ENTRY(__CONTEXT_FUNC_NAME)
/* Use the extended four-operand version of the mtfsf insn. */
mtfsf 0xff,fp31,1,0
# else
+ .machine push
+ .machine "power6"
/* Availability of DFP indicates a 64-bit FPSCR. */
andi. r6,r7,PPC_FEATURE_HAS_DFP
beq 7f
@@ -212,7 +214,7 @@ ENTRY(__CONTEXT_FUNC_NAME)
b 8f
/* Continue to operate on the FPSCR as if it were 32-bits. */
7: mtfsf 0xff,fp31
-8:
+8: .machine pop
# 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)

View File

@ -1,6 +1,6 @@
%define glibcdate 20090218T1534
%define glibcdate 20090309T1421
%define glibcname glibc
%define glibcsrcdir glibc-20090218T1534
%define glibcsrcdir glibc-20090309T1421
%define glibc_release_tarballs 0
%define run_glibc_tests 1
%define auxarches i686 athlon sparcv9v sparc64v alphaev6
@ -23,7 +23,7 @@
Summary: The GNU libc libraries
Name: glibc
Version: 2.9.90
Release: 8.1
Release: 9
# 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
@ -77,8 +77,6 @@ BuildRequires: rpm >= 4.2-0.56
%define __find_provides %{_builddir}/%{glibcsrcdir}/find_provides.sh
%define _filter_GLIBC_PRIVATE 1
Patch2: thread_db.patch
%description
The glibc package contains standard libraries which are used by
multiple programs on the system. In order to save disk space and
@ -235,8 +233,6 @@ package or when debugging this package.
%endif
%endif
%patch2 -p0
# A lot of programs still misuse memcpy when they have to use
# memmove. The memcpy implementation below is not tolerant at
# all.
@ -607,10 +603,10 @@ grep -v '%{_prefix}/%{_lib}/lib.*_p.a' rpm.filelist.full |
egrep -v "(%{_prefix}/include)|(%{_infodir})" > rpm.filelist
grep '%{_prefix}/%{_lib}/lib.*\.a' < rpm.filelist \
| grep '/lib\(\(c\|pthread\)_nonshared\|bsd\(\|-compat\)\|g\|ieee\|mcheck\|rpcsvc\)\.a$' \
| grep '/lib\(\(c\|pthread\|nldbl\)_nonshared\|bsd\(\|-compat\)\|g\|ieee\|mcheck\|rpcsvc\)\.a$' \
>> devel.filelist
grep '%{_prefix}/%{_lib}/lib.*\.a' < rpm.filelist \
| grep -v '/lib\(\(c\|pthread\)_nonshared\|bsd\(\|-compat\)\|g\|ieee\|mcheck\|rpcsvc\)\.a$' \
| grep -v '/lib\(\(c\|pthread\|nldbl\)_nonshared\|bsd\(\|-compat\)\|g\|ieee\|mcheck\|rpcsvc\)\.a$' \
> static.filelist
grep '%{_prefix}/%{_lib}/.*\.o' < rpm.filelist >> devel.filelist
grep '%{_prefix}/%{_lib}/lib.*\.so' < rpm.filelist >> devel.filelist
@ -756,7 +752,7 @@ echo ====================PLT RELOCS END==================
%endif
pushd $RPM_BUILD_ROOT/usr/%{_lib}/
$GCC -Wl,-r -nostdlib -o libpthread.o -Wl,--whole-archive ./libpthread.a
$GCC -r -nostdlib -o libpthread.o -Wl,--whole-archive ./libpthread.a
rm libpthread.a
ar rcs libpthread.a libpthread.o
rm libpthread.o
@ -1017,6 +1013,11 @@ rm -f *.filelist*
%endif
%changelog
* Mon Mar 9 2009 Jakub Jelinek <jakub@redhat.com> 2.9.90-9
- update from trunk
- POSIX 2008 support: -D_XOPEN_SOURCE=700 and -D_POSIX_C_SOURCE=200809L
- move libnldbl_nonshared.a on ppc*/s390*/sparc* back to glibc-devel
* Fri Feb 27 2009 Roland McGrath <roland@redhat.com> - 2.9.90-8.1
- fix libthread_db (#487212)

View File

@ -4,3 +4,4 @@ glibc-2_9_90-1:HEAD:glibc-2.9.90-1.src.rpm:1230934009
glibc-2_9_90-2:HEAD:glibc-2.9.90-2.src.rpm:1231411404
glibc-2_9_90-3:HEAD:glibc-2.9.90-3.src.rpm:1233787870
glibc-2_9_90-4:HEAD:glibc-2.9.90-4.src.rpm:1234989992
glibc-2_9_90-9:HEAD:glibc-2.9.90-9.src.rpm:1236610744

View File

@ -1,2 +1,2 @@
086325bc4b2a05d1870f12b627d894ca glibc-20090218T1534.tar.bz2
407b035feb8ac8f685409d8208f99605 glibc-fedora-20090218T1534.tar.bz2
5dd18e197bad27f4b286cef3f7f5c7f6 glibc-20090309T1421.tar.bz2
f04dcc55050cf57727323ff916bd0612 glibc-fedora-20090309T1421.tar.bz2

View File

@ -1,47 +0,0 @@
2009-02-27 Roland McGrath <roland@redhat.com>
* init.c (__nptl_initial_report_events): Mark __attribute_used__.
* pthread_create.c (__nptl_threads_events, __nptl_last_event): Likewise.
Index: nptl/init.c
===================================================================
RCS file: /cvs/glibc/libc/nptl/init.c,v
retrieving revision 1.78
diff -u -r1.78 init.c
--- nptl/init.c 29 Jan 2009 20:35:17 -0000 1.78
+++ nptl/init.c 28 Feb 2009 02:26:34 -0000
@@ -260,7 +260,7 @@
/* This can be set by the debugger before initialization is complete. */
-static bool __nptl_initial_report_events;
+static bool __nptl_initial_report_events __attribute_used__;
void
__pthread_initialize_minimal_internal (void)
Index: nptl/pthread_create.c
===================================================================
RCS file: /cvs/glibc/libc/nptl/pthread_create.c,v
retrieving revision 1.59
diff -u -r1.59 pthread_create.c
--- nptl/pthread_create.c 9 Apr 2008 17:58:06 -0000 1.59
+++ nptl/pthread_create.c 28 Feb 2009 02:26:34 -0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2007, 2008 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2007,2008,2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -40,10 +40,10 @@
int __pthread_debug;
/* Globally enabled events. */
-static td_thr_events_t __nptl_threads_events;
+static td_thr_events_t __nptl_threads_events __attribute_used__;
/* Pointer to descriptor with the last event. */
-static struct pthread *__nptl_last_event;
+static struct pthread *__nptl_last_event __attribute_used__;
/* Number of threads running. */
unsigned int __nptl_nthreads = 1;