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-20090309T1421.tar.bz2
glibc-fedora-20090218T1534.tar.bz2 glibc-fedora-20090309T1421.tar.bz2

View File

@ -2101,3 +2101,193 @@
cfi_startproc; cfi_startproc;
PSEUDO_END (BP_SYM (__clone)) 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 glibcname glibc
%define glibcsrcdir glibc-20090218T1534 %define glibcsrcdir glibc-20090309T1421
%define glibc_release_tarballs 0 %define glibc_release_tarballs 0
%define run_glibc_tests 1 %define run_glibc_tests 1
%define auxarches i686 athlon sparcv9v sparc64v alphaev6 %define auxarches i686 athlon sparcv9v sparc64v alphaev6
@ -23,7 +23,7 @@
Summary: The GNU libc libraries Summary: The GNU libc libraries
Name: glibc Name: glibc
Version: 2.9.90 Version: 2.9.90
Release: 8.1 Release: 9
# GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries. # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
# Things that are linked directly into dynamically linked programs # Things that are linked directly into dynamically linked programs
# and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional # 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 __find_provides %{_builddir}/%{glibcsrcdir}/find_provides.sh
%define _filter_GLIBC_PRIVATE 1 %define _filter_GLIBC_PRIVATE 1
Patch2: thread_db.patch
%description %description
The glibc package contains standard libraries which are used by The glibc package contains standard libraries which are used by
multiple programs on the system. In order to save disk space and multiple programs on the system. In order to save disk space and
@ -235,8 +233,6 @@ package or when debugging this package.
%endif %endif
%endif %endif
%patch2 -p0
# A lot of programs still misuse memcpy when they have to use # A lot of programs still misuse memcpy when they have to use
# memmove. The memcpy implementation below is not tolerant at # memmove. The memcpy implementation below is not tolerant at
# all. # all.
@ -607,10 +603,10 @@ grep -v '%{_prefix}/%{_lib}/lib.*_p.a' rpm.filelist.full |
egrep -v "(%{_prefix}/include)|(%{_infodir})" > rpm.filelist egrep -v "(%{_prefix}/include)|(%{_infodir})" > rpm.filelist
grep '%{_prefix}/%{_lib}/lib.*\.a' < 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 >> devel.filelist
grep '%{_prefix}/%{_lib}/lib.*\.a' < rpm.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 > static.filelist
grep '%{_prefix}/%{_lib}/.*\.o' < rpm.filelist >> devel.filelist grep '%{_prefix}/%{_lib}/.*\.o' < rpm.filelist >> devel.filelist
grep '%{_prefix}/%{_lib}/lib.*\.so' < rpm.filelist >> devel.filelist grep '%{_prefix}/%{_lib}/lib.*\.so' < rpm.filelist >> devel.filelist
@ -756,7 +752,7 @@ echo ====================PLT RELOCS END==================
%endif %endif
pushd $RPM_BUILD_ROOT/usr/%{_lib}/ 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 rm libpthread.a
ar rcs libpthread.a libpthread.o ar rcs libpthread.a libpthread.o
rm libpthread.o rm libpthread.o
@ -1017,6 +1013,11 @@ rm -f *.filelist*
%endif %endif
%changelog %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 * Fri Feb 27 2009 Roland McGrath <roland@redhat.com> - 2.9.90-8.1
- fix libthread_db (#487212) - 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-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-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-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 5dd18e197bad27f4b286cef3f7f5c7f6 glibc-20090309T1421.tar.bz2
407b035feb8ac8f685409d8208f99605 glibc-fedora-20090218T1534.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;