forked from rpms/glibc
- Update from master (16c6f99)
- Fix typo in recent tzfile change (#769476) - Make MALLOC_ARENA_MAX and MALLOC_ARENA_TEST match documentation (#740506) - Revert "fix" to pthread_cond_wait (#769421) - Extract patch for 730856 from fedora-patch into a distinct patchfile
This commit is contained in:
parent
f79eb1f502
commit
25912eaa88
3
.gitignore
vendored
3
.gitignore
vendored
@ -5,3 +5,6 @@ glibc-2.14-394-g8f3b1ff
|
|||||||
/glibc-2.14-a4647e7-fedora.tar.gz
|
/glibc-2.14-a4647e7-fedora.tar.gz
|
||||||
/glibc-2.14-a4647e7.tar.gz
|
/glibc-2.14-a4647e7.tar.gz
|
||||||
/glibc-ports-2.14-4a93ed4.tar.gz
|
/glibc-ports-2.14-4a93ed4.tar.gz
|
||||||
|
/glibc-2.14-16c6f99-fedora.tar.gz
|
||||||
|
/glibc-2.14-16c6f99.tar.gz
|
||||||
|
/glibc-ports-2.14-c2aeee1.tar.gz
|
||||||
|
File diff suppressed because it is too large
Load Diff
16
glibc-rh730856.patch
Normal file
16
glibc-rh730856.patch
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
2011-09-01 Andreas Schwab <schwab@redhat.com>
|
||||||
|
|
||||||
|
* resolv/res_query.c (__libc_res_nquery): Update assertion.
|
||||||
|
|
||||||
|
diff -ru a/resolv/res_query.c b/resolv/res_query.c
|
||||||
|
--- a/resolv/res_query.c 2011-12-12 14:10:52.000000000 -0700
|
||||||
|
+++ b/resolv/res_query.c 2011-12-12 14:23:04.832739111 -0700
|
||||||
|
@@ -248,7 +248,7 @@
|
||||||
|
&& *resplen2 > (int) sizeof (HEADER))
|
||||||
|
{
|
||||||
|
/* Special case of partial answer. */
|
||||||
|
- assert (hp != hp2);
|
||||||
|
+ assert (n == 0 || hp != hp2);
|
||||||
|
hp = hp2;
|
||||||
|
}
|
||||||
|
else if (answerp2 != NULL && *resplen2 < (int) sizeof (HEADER)
|
35
glibc-rh740506.patch
Normal file
35
glibc-rh740506.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
* malloc/arena.c (arena_get2): Avoid unnecessarily
|
||||||
|
retrieving #cpus from /proc.
|
||||||
|
* malloc/malloc.c (mALLOPt): Clamp arena_test based on
|
||||||
|
the value of arena_max.
|
||||||
|
|
||||||
|
diff --git a/malloc/arena.c b/malloc/arena.c
|
||||||
|
index cb8548b..00f1da5 100644
|
||||||
|
--- a/malloc/arena.c
|
||||||
|
+++ b/malloc/arena.c
|
||||||
|
@@ -828,7 +828,7 @@ arena_get2(mstate a_tsd, size_t size)
|
||||||
|
{
|
||||||
|
if (mp_.arena_max != 0)
|
||||||
|
narenas_limit = mp_.arena_max;
|
||||||
|
- else
|
||||||
|
+ else if (narenas > mp_.arena_test)
|
||||||
|
{
|
||||||
|
int n = __get_nprocs ();
|
||||||
|
|
||||||
|
diff --git a/malloc/malloc.c b/malloc/malloc.c
|
||||||
|
index 8608083..f8d32da 100644
|
||||||
|
--- a/malloc/malloc.c
|
||||||
|
+++ b/malloc/malloc.c
|
||||||
|
@@ -4842,6 +4842,12 @@ int mALLOPt(int param_number, int value)
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
+#ifdef PER_THREAD
|
||||||
|
+ /* Clamp ARENA_TEST from ARENA_MAX to avoid creating too many
|
||||||
|
+ arenas. */
|
||||||
|
+ if (mp_.arena_max > 0 && mp_.arena_max <= mp_.arena_test)
|
||||||
|
+ mp_.arena_test = mp_.arena_max - 1;
|
||||||
|
+#endif
|
||||||
|
(void)mutex_unlock(&av->mutex);
|
||||||
|
return res;
|
||||||
|
}
|
229
glibc-rh769421.patch
Normal file
229
glibc-rh769421.patch
Normal file
@ -0,0 +1,229 @@
|
|||||||
|
diff -rup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
|
||||||
|
--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:12.937212834 +0000
|
||||||
|
+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:42.104222278 +0000
|
||||||
|
@@ -137,7 +137,6 @@ __pthread_cond_wait:
|
||||||
|
cmpl $PI_BIT, %eax
|
||||||
|
jne 18f
|
||||||
|
|
||||||
|
-90:
|
||||||
|
movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %ecx
|
||||||
|
movl %ebp, %edx
|
||||||
|
xorl %esi, %esi
|
||||||
|
@@ -151,9 +150,6 @@ __pthread_cond_wait:
|
||||||
|
sete 16(%esp)
|
||||||
|
je 19f
|
||||||
|
|
||||||
|
- cmpl $-EAGAIN, %eax
|
||||||
|
- je 91f
|
||||||
|
-
|
||||||
|
/* Normal and PI futexes dont mix. Use normal futex functions only
|
||||||
|
if the kernel does not support the PI futex functions. */
|
||||||
|
cmpl $-ENOSYS, %eax
|
||||||
|
@@ -398,78 +394,6 @@ __pthread_cond_wait:
|
||||||
|
#endif
|
||||||
|
call __lll_unlock_wake
|
||||||
|
jmp 11b
|
||||||
|
-
|
||||||
|
-91:
|
||||||
|
-.LcleanupSTART2:
|
||||||
|
- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
|
||||||
|
- call it again. */
|
||||||
|
-
|
||||||
|
- /* Get internal lock. */
|
||||||
|
- movl $1, %edx
|
||||||
|
- xorl %eax, %eax
|
||||||
|
- LOCK
|
||||||
|
-#if cond_lock == 0
|
||||||
|
- cmpxchgl %edx, (%ebx)
|
||||||
|
-#else
|
||||||
|
- cmpxchgl %edx, cond_lock(%ebx)
|
||||||
|
-#endif
|
||||||
|
- jz 92f
|
||||||
|
-
|
||||||
|
-#if cond_lock == 0
|
||||||
|
- movl %ebx, %edx
|
||||||
|
-#else
|
||||||
|
- leal cond_lock(%ebx), %edx
|
||||||
|
-#endif
|
||||||
|
-#if (LLL_SHARED-LLL_PRIVATE) > 255
|
||||||
|
- xorl %ecx, %ecx
|
||||||
|
-#endif
|
||||||
|
- cmpl $-1, dep_mutex(%ebx)
|
||||||
|
- setne %cl
|
||||||
|
- subl $1, %ecx
|
||||||
|
- andl $(LLL_SHARED-LLL_PRIVATE), %ecx
|
||||||
|
-#if LLL_PRIVATE != 0
|
||||||
|
- addl $LLL_PRIVATE, %ecx
|
||||||
|
-#endif
|
||||||
|
- call __lll_lock_wait
|
||||||
|
-
|
||||||
|
-92:
|
||||||
|
- /* Increment the cond_futex value again, so it can be used as a new
|
||||||
|
- expected value. */
|
||||||
|
- addl $1, cond_futex(%ebx)
|
||||||
|
- movl cond_futex(%ebx), %ebp
|
||||||
|
-
|
||||||
|
- /* Unlock. */
|
||||||
|
- LOCK
|
||||||
|
-#if cond_lock == 0
|
||||||
|
- subl $1, (%ebx)
|
||||||
|
-#else
|
||||||
|
- subl $1, cond_lock(%ebx)
|
||||||
|
-#endif
|
||||||
|
- je 93f
|
||||||
|
-#if cond_lock == 0
|
||||||
|
- movl %ebx, %eax
|
||||||
|
-#else
|
||||||
|
- leal cond_lock(%ebx), %eax
|
||||||
|
-#endif
|
||||||
|
-#if (LLL_SHARED-LLL_PRIVATE) > 255
|
||||||
|
- xorl %ecx, %ecx
|
||||||
|
-#endif
|
||||||
|
- cmpl $-1, dep_mutex(%ebx)
|
||||||
|
- setne %cl
|
||||||
|
- subl $1, %ecx
|
||||||
|
- andl $(LLL_SHARED-LLL_PRIVATE), %ecx
|
||||||
|
-#if LLL_PRIVATE != 0
|
||||||
|
- addl $LLL_PRIVATE, %ecx
|
||||||
|
-#endif
|
||||||
|
- call __lll_unlock_wake
|
||||||
|
-
|
||||||
|
-93:
|
||||||
|
- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
|
||||||
|
- xorl %ecx, %ecx
|
||||||
|
- movl dep_mutex(%ebx), %edi
|
||||||
|
- jmp 90b
|
||||||
|
-.LcleanupEND2:
|
||||||
|
-
|
||||||
|
.size __pthread_cond_wait, .-__pthread_cond_wait
|
||||||
|
versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
|
||||||
|
GLIBC_2_3_2)
|
||||||
|
@@ -642,10 +566,6 @@ __condvar_w_cleanup:
|
||||||
|
.long .LcleanupEND-.Lsub_cond_futex
|
||||||
|
.long __condvar_w_cleanup-.LSTARTCODE
|
||||||
|
.uleb128 0
|
||||||
|
- .long .LcleanupSTART2-.LSTARTCODE
|
||||||
|
- .long .LcleanupEND2-.LcleanupSTART2
|
||||||
|
- .long __condvar_w_cleanup-.LSTARTCODE
|
||||||
|
- .uleb128 0
|
||||||
|
.long .LcallUR-.LSTARTCODE
|
||||||
|
.long .LENDCODE-.LcallUR
|
||||||
|
.long 0
|
||||||
|
Only in b/nptl/sysdeps/unix/sysv/linux/i386/i486: pthread_cond_wait.S.orig
|
||||||
|
diff -rup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
|
||||||
|
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:04:12.941212837 +0000
|
||||||
|
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:05:05.155229737 +0000
|
||||||
|
@@ -23,7 +23,6 @@
|
||||||
|
#include <lowlevelcond.h>
|
||||||
|
#include <tcb-offsets.h>
|
||||||
|
#include <pthread-pi-defines.h>
|
||||||
|
-#include <pthread-errnos.h>
|
||||||
|
#include <stap-probe.h>
|
||||||
|
|
||||||
|
#include <kernel-features.h>
|
||||||
|
@@ -137,14 +136,11 @@ __pthread_cond_wait:
|
||||||
|
cmpl $PI_BIT, %eax
|
||||||
|
jne 61f
|
||||||
|
|
||||||
|
-90:
|
||||||
|
movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi
|
||||||
|
movl $SYS_futex, %eax
|
||||||
|
syscall
|
||||||
|
|
||||||
|
movl $1, %r8d
|
||||||
|
- cmpq $-EAGAIN, %rax
|
||||||
|
- je 91f
|
||||||
|
#ifdef __ASSUME_REQUEUE_PI
|
||||||
|
jmp 62f
|
||||||
|
#else
|
||||||
|
@@ -331,70 +327,6 @@ __pthread_cond_wait:
|
||||||
|
|
||||||
|
13: movq %r10, %rax
|
||||||
|
jmp 14b
|
||||||
|
-
|
||||||
|
-91:
|
||||||
|
-.LcleanupSTART2:
|
||||||
|
- /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
|
||||||
|
- call it again. */
|
||||||
|
- movq 8(%rsp), %rdi
|
||||||
|
-
|
||||||
|
- /* Get internal lock. */
|
||||||
|
- movl $1, %esi
|
||||||
|
- xorl %eax, %eax
|
||||||
|
- LOCK
|
||||||
|
-#if cond_lock == 0
|
||||||
|
- cmpxchgl %esi, (%rdi)
|
||||||
|
-#else
|
||||||
|
- cmpxchgl %esi, cond_lock(%rdi)
|
||||||
|
-#endif
|
||||||
|
- jz 92f
|
||||||
|
-
|
||||||
|
-#if cond_lock != 0
|
||||||
|
- addq $cond_lock, %rdi
|
||||||
|
-#endif
|
||||||
|
- cmpq $-1, dep_mutex-cond_lock(%rdi)
|
||||||
|
- movl $LLL_PRIVATE, %eax
|
||||||
|
- movl $LLL_SHARED, %esi
|
||||||
|
- cmovne %eax, %esi
|
||||||
|
- callq __lll_lock_wait
|
||||||
|
-#if cond_lock != 0
|
||||||
|
- subq $cond_lock, %rdi
|
||||||
|
-#endif
|
||||||
|
-92:
|
||||||
|
- /* Increment the cond_futex value again, so it can be used as a new
|
||||||
|
- expected value. */
|
||||||
|
- incl cond_futex(%rdi)
|
||||||
|
- movl cond_futex(%rdi), %edx
|
||||||
|
-
|
||||||
|
- /* Release internal lock. */
|
||||||
|
- LOCK
|
||||||
|
-#if cond_lock == 0
|
||||||
|
- decl (%rdi)
|
||||||
|
-#else
|
||||||
|
- decl cond_lock(%rdi)
|
||||||
|
-#endif
|
||||||
|
- jz 93f
|
||||||
|
-
|
||||||
|
-#if cond_lock != 0
|
||||||
|
- addq $cond_lock, %rdi
|
||||||
|
-#endif
|
||||||
|
- cmpq $-1, dep_mutex-cond_lock(%rdi)
|
||||||
|
- movl $LLL_PRIVATE, %eax
|
||||||
|
- movl $LLL_SHARED, %esi
|
||||||
|
- cmovne %eax, %esi
|
||||||
|
- /* The call preserves %rdx. */
|
||||||
|
- callq __lll_unlock_wake
|
||||||
|
-#if cond_lock != 0
|
||||||
|
- subq $cond_lock, %rdi
|
||||||
|
-#endif
|
||||||
|
-93:
|
||||||
|
- /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
|
||||||
|
- xorq %r10, %r10
|
||||||
|
- movq dep_mutex(%rdi), %r8
|
||||||
|
- leaq cond_futex(%rdi), %rdi
|
||||||
|
- jmp 90b
|
||||||
|
-.LcleanupEND2:
|
||||||
|
-
|
||||||
|
.size __pthread_cond_wait, .-__pthread_cond_wait
|
||||||
|
versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
|
||||||
|
GLIBC_2_3_2)
|
||||||
|
@@ -547,15 +479,11 @@ __condvar_cleanup1:
|
||||||
|
.uleb128 .LcleanupSTART-.LSTARTCODE
|
||||||
|
.uleb128 .LcleanupEND-.LcleanupSTART
|
||||||
|
.uleb128 __condvar_cleanup1-.LSTARTCODE
|
||||||
|
- .uleb128 0
|
||||||
|
- .uleb128 .LcleanupSTART2-.LSTARTCODE
|
||||||
|
- .uleb128 .LcleanupEND2-.LcleanupSTART2
|
||||||
|
- .uleb128 __condvar_cleanup1-.LSTARTCODE
|
||||||
|
- .uleb128 0
|
||||||
|
+ .uleb128 0
|
||||||
|
.uleb128 .LcallUR-.LSTARTCODE
|
||||||
|
.uleb128 .LENDCODE-.LcallUR
|
||||||
|
.uleb128 0
|
||||||
|
- .uleb128 0
|
||||||
|
+ .uleb128 0
|
||||||
|
.Lcstend:
|
||||||
|
|
||||||
|
|
||||||
|
Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.orig
|
||||||
|
Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.rej
|
19
glibc-rh769476.patch
Normal file
19
glibc-rh769476.patch
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
commit 8fa26d571d4b87a1c7a7f19f1365f7e5d2995933
|
||||||
|
Author: Ulrich Drepper <drepper@gmail.com>
|
||||||
|
Date: Wed Dec 21 18:57:18 2011 -0500
|
||||||
|
|
||||||
|
Fix one typo
|
||||||
|
|
||||||
|
diff --git a/time/tzfile.c b/time/tzfile.c
|
||||||
|
index 402389c..a8c1c0e 100644
|
||||||
|
--- a/time/tzfile.c
|
||||||
|
+++ b/time/tzfile.c
|
||||||
|
@@ -278,7 +278,7 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
|
||||||
|
if (__builtin_expect (tzspec_len < num_isstd, 0))
|
||||||
|
goto lose;
|
||||||
|
tzspec_len -= num_isstd;
|
||||||
|
- if (__builtin_expect (tzspec == 0 || tzspec_len - 1 < num_isgmt, 0))
|
||||||
|
+ if (__builtin_expect (tzspec_len == 0 || tzspec_len - 1 < num_isgmt, 0))
|
||||||
|
goto lose;
|
||||||
|
tzspec_len -= num_isgmt + 1;
|
||||||
|
if (__builtin_expect (SIZE_MAX - total_size < tzspec_len, 0))
|
26
glibc.spec
26
glibc.spec
@ -1,6 +1,6 @@
|
|||||||
%define glibcsrcdir glibc-2.14-a4647e7
|
%define glibcsrcdir glibc-2.14-16c6f99
|
||||||
%define glibcversion 2.14.90
|
%define glibcversion 2.14.90
|
||||||
%define glibcportsdir glibc-ports-2.14-4a93ed4
|
%define glibcportsdir glibc-ports-2.14-c2aeee1
|
||||||
### glibc.spec.in follows:
|
### glibc.spec.in follows:
|
||||||
%define run_glibc_tests 1
|
%define run_glibc_tests 1
|
||||||
%define auxarches athlon alphaev6
|
%define auxarches athlon alphaev6
|
||||||
@ -28,7 +28,7 @@
|
|||||||
Summary: The GNU libc libraries
|
Summary: The GNU libc libraries
|
||||||
Name: glibc
|
Name: glibc
|
||||||
Version: %{glibcversion}
|
Version: %{glibcversion}
|
||||||
Release: 25%{?dist}
|
Release: 26%{?dist}
|
||||||
# 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
|
||||||
@ -46,6 +46,14 @@ Patch1: %{name}-ia64-lib64.patch
|
|||||||
# thread A has unlocked on the error path
|
# thread A has unlocked on the error path
|
||||||
# There's an alternate approach using mmap after detecting an error that needs discussion
|
# There's an alternate approach using mmap after detecting an error that needs discussion
|
||||||
Patch2: %{name}-rh757881.patch
|
Patch2: %{name}-rh757881.patch
|
||||||
|
# Sent upstream, awaiting responses
|
||||||
|
Patch3: %{name}-rh740506.patch
|
||||||
|
# Not sure of upstream status
|
||||||
|
Patch4: %{name}-rh730856.patch
|
||||||
|
# Reverting an upstream patch. I don't think this has been discussed upstream yet.
|
||||||
|
# Caused a variety of problems for Fedora & Debian
|
||||||
|
Patch5: %{name}-rh769421.patch
|
||||||
|
|
||||||
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
Obsoletes: glibc-profile < 2.4
|
Obsoletes: glibc-profile < 2.4
|
||||||
Obsoletes: nss_db
|
Obsoletes: nss_db
|
||||||
@ -261,10 +269,13 @@ rm -rf %{glibcportsdir}
|
|||||||
%patch0 -E -p1
|
%patch0 -E -p1
|
||||||
%ifarch ia64
|
%ifarch ia64
|
||||||
%if "%{_lib}" == "lib64"
|
%if "%{_lib}" == "lib64"
|
||||||
%patch1 -p1
|
#%patch1 -p1
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
|
%patch5 -p1
|
||||||
|
|
||||||
# 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
|
||||||
@ -1117,6 +1128,13 @@ rm -f *.filelist*
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Dec 22 2011 Jeff Law <law@redhat.com> - 2.14.90-26.fc17
|
||||||
|
- Update from master (16c6f99)
|
||||||
|
- Fix typo in recent tzfile change (#769476)
|
||||||
|
- Make MALLOC_ARENA_MAX and MALLOC_ARENA_TEST match documentation (#740506)
|
||||||
|
- Revert "fix" to pthread_cond_wait (#769421)
|
||||||
|
- Extract patch for 730856 from fedora-patch into a distinct patchfile
|
||||||
|
|
||||||
* Mon Dec 19 2011 Jeff Law <law@redhat.com> - 2.14.90-25.fc17
|
* Mon Dec 19 2011 Jeff Law <law@redhat.com> - 2.14.90-25.fc17
|
||||||
- Update from master (a4647e7).
|
- Update from master (a4647e7).
|
||||||
|
|
||||||
|
6
sources
6
sources
@ -1,3 +1,3 @@
|
|||||||
cb5aa693529a29dccf63ff469464fcce glibc-2.14-a4647e7-fedora.tar.gz
|
5d434a88a92c4957d415748cbf10b532 glibc-2.14-16c6f99-fedora.tar.gz
|
||||||
905fb427fbfa8a32c01f63bfdd3f7912 glibc-2.14-a4647e7.tar.gz
|
5376ee70edca1e31fba32dabd777e9db glibc-2.14-16c6f99.tar.gz
|
||||||
2e5aa88b3474e41a90cdb1dab2ee1c5d glibc-ports-2.14-4a93ed4.tar.gz
|
a83cba20b4ef453e85335a400b1e137b glibc-ports-2.14-c2aeee1.tar.gz
|
||||||
|
Loading…
Reference in New Issue
Block a user