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.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 glibcportsdir glibc-ports-2.14-4a93ed4
|
||||
%define glibcportsdir glibc-ports-2.14-c2aeee1
|
||||
### glibc.spec.in follows:
|
||||
%define run_glibc_tests 1
|
||||
%define auxarches athlon alphaev6
|
||||
@ -28,7 +28,7 @@
|
||||
Summary: The GNU libc libraries
|
||||
Name: glibc
|
||||
Version: %{glibcversion}
|
||||
Release: 25%{?dist}
|
||||
Release: 26%{?dist}
|
||||
# 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
|
||||
@ -46,6 +46,14 @@ Patch1: %{name}-ia64-lib64.patch
|
||||
# thread A has unlocked on the error path
|
||||
# There's an alternate approach using mmap after detecting an error that needs discussion
|
||||
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)
|
||||
Obsoletes: glibc-profile < 2.4
|
||||
Obsoletes: nss_db
|
||||
@ -261,10 +269,13 @@ rm -rf %{glibcportsdir}
|
||||
%patch0 -E -p1
|
||||
%ifarch ia64
|
||||
%if "%{_lib}" == "lib64"
|
||||
%patch1 -p1
|
||||
#%patch1 -p1
|
||||
%endif
|
||||
%endif
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
|
||||
# A lot of programs still misuse memcpy when they have to use
|
||||
# memmove. The memcpy implementation below is not tolerant at
|
||||
@ -1117,6 +1128,13 @@ rm -f *.filelist*
|
||||
%endif
|
||||
|
||||
%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
|
||||
- Update from master (a4647e7).
|
||||
|
||||
|
6
sources
6
sources
@ -1,3 +1,3 @@
|
||||
cb5aa693529a29dccf63ff469464fcce glibc-2.14-a4647e7-fedora.tar.gz
|
||||
905fb427fbfa8a32c01f63bfdd3f7912 glibc-2.14-a4647e7.tar.gz
|
||||
2e5aa88b3474e41a90cdb1dab2ee1c5d glibc-ports-2.14-4a93ed4.tar.gz
|
||||
5d434a88a92c4957d415748cbf10b532 glibc-2.14-16c6f99-fedora.tar.gz
|
||||
5376ee70edca1e31fba32dabd777e9db glibc-2.14-16c6f99.tar.gz
|
||||
a83cba20b4ef453e85335a400b1e137b glibc-ports-2.14-c2aeee1.tar.gz
|
||||
|
Loading…
Reference in New Issue
Block a user