diff --git a/glibc-2.11.1-11c19d374bd4.tar.bz2 b/glibc-2.11.1-11c19d374bd4.tar.bz2 deleted file mode 100644 index ae9b0ca..0000000 --- a/glibc-2.11.1-11c19d374bd4.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e03c84ffe3b41a81a070a896307fa59b4618f2cc053360a65c867a79a32a718c -size 15670997 diff --git a/glibc-2.11.2-f2020c64596a.tar.bz2 b/glibc-2.11.2-f2020c64596a.tar.bz2 new file mode 100644 index 0000000..fbea893 --- /dev/null +++ b/glibc-2.11.2-f2020c64596a.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:badb11c8eef452ee7acf9842fb71daf46c96426dd8ce49f71b2c364c6e600082 +size 15675556 diff --git a/glibc-dl-x86-64-pc32.diff b/glibc-dl-x86-64-pc32.diff deleted file mode 100644 index 76c25fa..0000000 --- a/glibc-dl-x86-64-pc32.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- sysdeps/x86_64/dl-machine.h~ 2010-03-01 18:51:13.914317000 +0100 -+++ sysdeps/x86_64/dl-machine.h 2010-03-01 18:52:01.258038000 +0100 -@@ -453,7 +453,7 @@ - case R_X86_64_PC32: - value += reloc->r_addend - (Elf64_Addr) reloc_addr; - *(unsigned int *) reloc_addr = value; -- if (__builtin_expect (value != (unsigned int) value, 0)) -+ if (__builtin_expect (value != (int) value, 0)) - { - fmt = "\ - %s: Symbol `%s' causes overflow in R_X86_64_PC32 relocation\n"; diff --git a/glibc-gai-private4.diff b/glibc-gai-private4.diff index 8dfc671..189b2ea 100644 --- a/glibc-gai-private4.diff +++ b/glibc-gai-private4.diff @@ -1,14 +1,13 @@ -Pending acceptance upstream when this gets RFC'd: -http://sourceware.org/bugzilla/show_bug.cgi?id=11438 - ---- posix/gai.conf~ 2010-04-20 13:05:50.197813000 +0200 -+++ posix/gai.conf 2010-04-20 13:08:46.472675000 +0200 -@@ -66,3 +66,68 @@ - #scopev4 ::ffff:172.16.0.0/108 5 +--- posix/gai.conf~ 2010-05-12 04:10:58.087661000 +0200 ++++ posix/gai.conf 2010-05-12 04:14:40.638820000 +0200 +@@ -67,11 +67,66 @@ #scopev4 ::ffff:192.168.0.0/112 5 #scopev4 ::ffff:0.0.0.0/96 14 -+ -+ + # +-# For sites which use site-local IPv4 addresses behind NAT there is +-# the problem that even if IPv4 addresses are preferred they do not +-# have the same scope and are therefore not sorted first. To change +-# this use only these rules: +# Back in 2003, the sorting algorithm used by getaddrinfo() was defined in RFC +# 3484. However, this document did not take into account (or foresee) the +# ubiquity of IPv4 NAT on today's internet. This in turn causes some real @@ -68,7 +67,10 @@ http://sourceware.org/bugzilla/show_bug.cgi?id=11438 +# > +# > By changing the address scope of private IPv4 address to global, this +# > problem can be solved. -+ + # +-#scopev4 ::ffff:169.254.0.0/112 2 +-#scopev4 ::ffff:127.0.0.0/104 2 +-#scopev4 ::ffff:0.0.0.0/96 14 +scopev4 ::ffff:10.0.0.0/104 14 +scopev4 ::ffff:172.16.0.0/108 14 +scopev4 ::ffff:192.168.0.0/112 14 diff --git a/glibc-getnprocs.diff b/glibc-getnprocs.diff deleted file mode 100644 index adb6e9d..0000000 --- a/glibc-getnprocs.diff +++ /dev/null @@ -1,148 +0,0 @@ -This bug is in reference to a bug introduced in glibc 2.11 but present in glibc -HEAD by the following patch set: - - http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=6a3d03ff58742430a252beac4a1917506512e319 - -The patch came from this bugzilla bug: - - https://bugzilla.redhat.com/show_bug.cgi?id=494631 - -Which simply proposed the first part: - - + nl = memchr (*cp, '\n', *re - *cp); - + while (nl == NULL && *re == buffer_end) - + { - + /* Truncate too long lines. */ - + *re = buffer + 3 * (buffer_end - buffer) / 4; - + n = read_not_cancel (fd, *re, buffer_end - *re); - + if (n < 0) - + return NULL; - + - + nl = memchr (*re, '\n', n); - + **re = '\n'; - + *re += n; - + } - } - + else - + nl = memchr (*cp, '\n', *re - *cp); - -This was checked in with a second part: - - else if (nl + 5 >= *re) - { - memmove (buffer, nl, *re - nl); - *re = buffer + (*re - nl); - nl = *cp = buffer; - - ssize_t n = read_not_cancel (fd, *re, buffer_end - *re); - if (n < 0) - return NULL; - - *re += n; - } - -Which is meant to determine whether there's enough room at the end of the -buffer to hold "cpu*\n". - - else if (nl + 5 >= *re) - { - memmove (buffer, nl, *re - nl); - *re = buffer + (*re - nl); - nl = *cp = buffer; - - ssize_t n = read_not_cancel (fd, *re, buffer_end - *re); - if (n < 0) - return NULL; - - *re += n; - } - - *cp = nl + 1; - -This second block is erroneous (and redundant). If there's not enough room to -complete a cpu[:digit:] line it'll try to move what's partially in the end of -the buffer to the front (preserving that portion) and then read in a bunch -more, assuming that a \n is in the next read. - -But it actually ends up overwriting the current line with the contents of the -second line. - -Consider the following line - -| C | P | U | 1 | \n | C | P | U | 2 | \n | C | P | U | 3 | F | O | O | B | A | -R | F | O | O | B | -A | R | \n | ... - -where sizeof(buffer) == 12. - -The first time through 'buffer' is filled as follows: - -| C | P | U | 1 | \n | C | P | U | 2 | \n | C | P | - -and 'cpu1' is the line that is returned. The second time through 'cpu2' is the -line that is supposed to be returned but this problematic branch is hit and the -last C P is copied to the front of the buffer over top of C P U 2. Following -this U 3 F O O B A R F O is read into the rest of 'buffer': - -| C | P ||| U | 3 | F | O | O | B | A | R | F | O | - -This throws off the whole incrementing calculation. - -This second else block isn't necessary. Jakub's first part covers the scenario -shown in the example above quite well: - -The following test case: - -#include -#include -int main() -{ -int lcpus=get_nprocs(); -printf("logical cpus = %d\n",lcpus); -return 0; -} - -Can be run against the attached /proc/stat file which is known to reproduce the -problem: - -This stat file can be used with the testcase by bind mounting it over -/proc/stat: -cp stat /dev/shm/stat -mount --bind /dev/shm/stat /proc/stat - -When run this should show: - -logical cpus = 1024 - -since cpu1024 is high cpu number. But it shows something like: - -logical cpus = 137 - -Also attached is a patch which removes the erroneous else block. - -When re-run against with this patch it reports the correct number of cpus. - -Thanks to Milton Miller for describing this problem. - - ---- glibc-2.11.1/sysdeps/unix/sysv/linux/getsysstats.c 2010-01-18 11:01:41.000000000 -0600 -+++ glibc-2.11.1-new/sysdeps/unix/sysv/linux/getsysstats.c 2010-03-23 08:00:26.000000000 -0500 -@@ -117,18 +117,6 @@ - if (nl == NULL) - nl = *re - 1; - } -- else if (nl + 5 >= *re) -- { -- memmove (buffer, nl, *re - nl); -- *re = buffer + (*re - nl); -- nl = *cp = buffer; -- -- ssize_t n = read_not_cancel (fd, *re, buffer_end - *re); -- if (n < 0) -- return NULL; -- -- *re += n; -- } - - *cp = nl + 1; - assert (*cp <= *re); diff --git a/glibc-memchr-ia64.diff b/glibc-memchr-ia64.diff deleted file mode 100644 index a95937d..0000000 --- a/glibc-memchr-ia64.diff +++ /dev/null @@ -1,39 +0,0 @@ -2010-02-05 H.J. Lu - - PR libc/11230 - * sysdeps/ia64/memchr.S: Don't read beyond the last byte - during recovery. - -diff --git a/sysdeps/ia64/memchr.S b/sysdeps/ia64/memchr.S -index cdd71ca..56d8056 100644 ---- a/sysdeps/ia64/memchr.S -+++ b/sysdeps/ia64/memchr.S -@@ -47,7 +47,7 @@ - #define saved_lc r16 - #define chr r17 - #define len r18 --#define pos0 r20 -+#define last r20 - #define val r21 - #define tmp r24 - #define chrx8 r25 -@@ -67,6 +67,7 @@ ENTRY(__memchr) - mov saved_pr = pr // save the predicates - .body - mov ret0 = str -+ add last = str, in2 // last byte - and tmp = 7, str // tmp = str % 8 - cmp.ne p7, p0 = r0, r0 // clear p7 - extr.u chr = in1, 0, 8 // chr = (unsigned char) in1 -@@ -143,7 +144,10 @@ ENTRY(__memchr) - ld8 tmp = [ret0];; // load the first unchecked 8byte - xor aux[1] = tmp, chrx8;; - czx1.r poschr[1] = aux[1];; -- cmp.ne p7, p0 = 8, poschr[1] -+ cmp.ne p7, p0 = 8, poschr[1];; -+(p7) add ret0 = addr[MEMLAT+2], poschr[1];; -+(p7) cmp.geu p6, p7 = ret0, last // don't go over the last byte -+(p6) br.cond.spnt .notfound;; - (p7) br.cond.spnt .foundit;; - adds ret0 = 8, ret0 // load the next unchecked 8byte - br.sptk .l4;; diff --git a/glibc-resolv-mdnshint.diff b/glibc-resolv-mdnshint.diff new file mode 100644 index 0000000..fec8d52 --- /dev/null +++ b/glibc-resolv-mdnshint.diff @@ -0,0 +1,19 @@ +diff --git a/resolv/res_hconf.c b/resolv/res_hconf.c +index ed55bec..f06db75 100644 +--- a/resolv/res_hconf.c ++++ b/resolv/res_hconf.c +@@ -243,9 +243,12 @@ parse_line (const char *fname, int line_num, const char *str) + if (c == NULL) + { + char *buf; ++ char *hint = ""; + +- if (__asprintf (&buf, _("%s: line %d: bad command `%s'\n"), +- fname, line_num, start) < 0) ++ if (__strncasecmp (start, "mdns", len) == 0 && len == 4) ++ hint = "Multicast DNS is now configured in /etc/nsswitch.conf instead.\nSee also the package and manpage of nss-mdns.\n"; ++ if (__asprintf (&buf, _("%s: line %d: bad command `%s'\n%s"), ++ fname, line_num, start, hint) < 0) + return; + + __fxprintf (NULL, "%s", buf); diff --git a/glibc-sap-captialsharps.diff b/glibc-sap-captialsharps.diff deleted file mode 100644 index b0b9e6d..0000000 --- a/glibc-sap-captialsharps.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- localedata/locales/i18n~ 2010-01-19 03:51:14.208960000 +0100 -+++ localedata/locales/i18n 2010-01-19 03:51:24.444040000 +0100 -@@ -928,7 +928,7 @@ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ -- (,);(,);(,);(,);/ -+ (,);(,);(,);/ - (,);/ - (,);(,);(,);(,);/ - (,);(,);(,);(,);/ diff --git a/glibc-utf-s390.diff b/glibc-utf-s390.diff deleted file mode 100644 index 83caab0..0000000 --- a/glibc-utf-s390.diff +++ /dev/null @@ -1,84 +0,0 @@ -Hi, - -unfortunately it turned out that the UTF-16 to UTF-32 and UTF-16 to -UTF-8 conversion instructions fail to recognize certain conditions if -the input stream is corrupted. - -The attached patch disables these instructions and adjusts the -software implementation in order to take care of the error condition. -Hopefully we can re-enable them if a millicode fix becomes available. - -Tested without regressions on s390x. - -Please apply if you think it is ok. - -Bye, - --Andreas- - - -2010-02-11 Andreas Krebbel - - * sysdeps/s390/s390-64/utf8-utf16-z9.c: Disable hardware - instructions cu21 and cu24. Add well-formedness checking - parameter and adjust the software implementation. - * sysdeps/s390/s390-64/utf16-utf32-z9.c: Likewise. - - -Index: libc/sysdeps/s390/s390-64/utf8-utf16-z9.c -=================================================================== ---- libc.orig/sysdeps/s390/s390-64/utf8-utf16-z9.c -+++ libc/sysdeps/s390/s390-64/utf8-utf16-z9.c -@@ -345,9 +345,12 @@ gconv_end (struct __gconv_step *data) - Operation. */ - #define BODY \ - { \ -- if (GLRO (dl_hwcap) & HWCAP_S390_ETF3EH) \ -+ /* The hardware instruction currently fails to report an error for \ -+ isolated low surrogates so we have to disable the instruction \ -+ until this gets resolved. */ \ -+ if (0) /* (GLRO (dl_hwcap) & HWCAP_S390_ETF3EH) */ \ - { \ -- HARDWARE_CONVERT ("cu21 %0, %1"); \ -+ HARDWARE_CONVERT ("cu21 %0, %1, 1"); \ - if (inptr != inend) \ - { \ - /* Check if the third byte is \ -@@ -388,7 +391,7 @@ gconv_end (struct __gconv_step *data) - \ - outptr += 2; \ - } \ -- else if (c >= 0x0800 && c <= 0xd7ff) \ -+ else if ((c >= 0x0800 && c <= 0xd7ff) || c > 0xdfff) \ - { \ - /* Three byte UTF-8 char. */ \ - \ -Index: libc/sysdeps/s390/s390-64/utf16-utf32-z9.c -=================================================================== ---- libc.orig/sysdeps/s390/s390-64/utf16-utf32-z9.c -+++ libc/sysdeps/s390/s390-64/utf16-utf32-z9.c -@@ -203,7 +203,10 @@ gconv_end (struct __gconv_step *data) - swapping). */ - #define BODY \ - { \ -- if (GLRO (dl_hwcap) & HWCAP_S390_ETF3EH) \ -+ /* The hardware instruction currently fails to report an error for \ -+ isolated low surrogates so we have to disable the instruction \ -+ until this gets resolved. */ \ -+ if (0) /* (GLRO (dl_hwcap) & HWCAP_S390_ETF3EH) */ \ - { \ - HARDWARE_CONVERT ("cu24 %0, %1, 1"); \ - if (inptr != inend) \ -@@ -229,6 +232,12 @@ gconv_end (struct __gconv_step *data) - } \ - else \ - { \ -+ /* An isolated low-surrogate was found. This has to be \ -+ considered ill-formed. */ \ -+ if (__builtin_expect (u1 >= 0xdc00, 0)) \ -+ { \ -+ STANDARD_FROM_LOOP_ERR_HANDLER (2); \ -+ } \ - /* It's a surrogate character. At least the first word says \ - it is. */ \ - if (__builtin_expect (inptr + 4 > inend, 0)) \ diff --git a/glibc-valloc-assert.diff b/glibc-valloc-assert.diff deleted file mode 100644 index b884029..0000000 --- a/glibc-valloc-assert.diff +++ /dev/null @@ -1,32 +0,0 @@ -Index: glibc-2.11.1/malloc/malloc.c -=================================================================== ---- glibc-2.11.1.orig/malloc/malloc.c 2010-01-18 18:01:41.000000000 +0100 -+++ glibc-2.11.1/malloc/malloc.c 2010-02-23 13:47:59.000000000 +0100 -@@ -3933,9 +3933,10 @@ public_vALLOc(size_t bytes) - if(!p) { - /* Maybe the failure is due to running out of mmapped areas. */ - if(ar_ptr != &main_arena) { -- (void)mutex_lock(&main_arena.mutex); -- p = _int_memalign(&main_arena, pagesz, bytes); -- (void)mutex_unlock(&main_arena.mutex); -+ ar_ptr = &main_arena; -+ (void)mutex_lock(&ar_ptr->mutex); -+ p = _int_memalign(ar_ptr, pagesz, bytes); -+ (void)mutex_unlock(&ar_ptr->mutex); - } else { - #if USE_ARENAS - /* ... or sbrk() has failed and there is still a chance to mmap() */ -@@ -3978,9 +3979,10 @@ public_pVALLOc(size_t bytes) - if(!p) { - /* Maybe the failure is due to running out of mmapped areas. */ - if(ar_ptr != &main_arena) { -- (void)mutex_lock(&main_arena.mutex); -- p = _int_memalign(&main_arena, pagesz, rounded_bytes); -- (void)mutex_unlock(&main_arena.mutex); -+ ar_ptr = &main_arena; -+ (void)mutex_lock(&ar_ptr->mutex); -+ p = _int_memalign(ar_ptr, pagesz, rounded_bytes); -+ (void)mutex_unlock(&ar_ptr->mutex); - } else { - #if USE_ARENAS - /* ... or sbrk() has failed and there is still a chance to mmap() */ diff --git a/glibc.changes b/glibc.changes index ab18918..2fc6678 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Thu May 20 02:19:28 CEST 2010 - pbaudis@suse.cz + +- Upgrade to glibc-2.11.2 (f2020c64596a) + - Virtually no changes since previous revision, just official tag + +------------------------------------------------------------------- +Wed May 12 04:24:13 CEST 2010 - pbaudis@suse.cz + +- Upgrade to latest release/2.11/master - glibc-2.11.1-6d270188ef3f + - This contains considerable amount of bugfixes cherrypicked from + the master branch, slated to become glibc-2.11.2 soon with little + further changes + +------------------------------------------------------------------- +Mon May 10 23:33:35 CEST 2010 - pbaudis@suse.cz + +- Add a hint about /etc/host.conf mdns option removal to the parser + error reporting [bnc#569273] + ------------------------------------------------------------------- Tue May 4 05:47:41 UTC 2010 - aj@suse.de diff --git a/glibc.spec b/glibc.spec index bce1e38..7ccf59c 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,5 +1,5 @@ # -# spec file for package glibc (Version 2.11.1) +# spec file for package glibc (Version 2.11.2) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -63,12 +63,12 @@ Obsoletes: glibc-32bit %endif Provides: rtld(GNU_HASH) AutoReqProv: on -Version: 2.11.1 -Release: 4 +Version: 2.11.2 +Release: 1 Url: http://www.gnu.org/software/libc/libc.html PreReq: filesystem BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source: glibc-%{version}-11c19d374bd4.tar.bz2 +Source: glibc-%{version}-f2020c64596a.tar.bz2 Source2: glibc-ports-2.10.1-2b2b217196.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 @@ -132,16 +132,10 @@ Patch47: libm-x86-64-exceptions.diff Patch48: glibc-uio-cell.diff Patch50: glibc-nameserver-localhost.diff Patch54: glibc-statfs64-ia64.diff -Patch55: glibc-memchr-ia64.diff -Patch56: glibc-utf-s390.diff -Patch57: glibc-valloc-assert.diff -Patch58: glibc-dl-x86-64-pc32.diff -Patch59: glibc-sap-captialsharps.diff Patch60: ld-prelink-unique.diff Patch61: glibc-ppc64-vdso-time.diff -Patch62: nptl-ppc64-vdso-timedwait.diff -Patch63: glibc-getnprocs.diff Patch64: glibc-gai-private4.diff +Patch65: glibc-resolv-mdnshint.diff Patch500: ARM_glibc-2.10.1-local-eabi-wchar.diff Patch501: ARM_glibc-2.10.1-local-hwcap-updates.diff Patch502: ARM_glibc-2.10.1-local-lowlevellock.diff @@ -357,16 +351,10 @@ rm nscd/s-stamp %patch48 -p1 %patch50 -p1 %patch54 -%patch55 -p1 -%patch56 -p1 -%patch57 -p1 -%patch58 -%patch59 %patch60 -p1 %patch61 -p1 -%patch62 -p1 -%patch63 -p1 %patch64 +%patch65 -p1 %ifarch %arm armv5tel armv7l %patch500 %patch501 diff --git a/nptl-ppc64-vdso-timedwait.diff b/nptl-ppc64-vdso-timedwait.diff deleted file mode 100644 index b41cb03..0000000 --- a/nptl-ppc64-vdso-timedwait.diff +++ /dev/null @@ -1,29 +0,0 @@ -Index: glibc-2.11.1/nptl/pthread_cond_timedwait.c -=================================================================== ---- glibc-2.11.1.old/nptl/pthread_cond_timedwait.c -+++ glibc-2.11.1/nptl/pthread_cond_timedwait.c -@@ -27,6 +27,15 @@ - - #include - -+#ifndef HAVE_CLOCK_GETTIME_VSYSCALL -+# undef INTERNAL_VSYSCALL -+# define INTERNAL_VSYSCALL INTERNAL_SYSCALL -+# undef INLINE_VSYSCALL -+# define INLINE_VSYSCALL INLINE_SYSCALL -+#else -+# include -+#endif -+ - - /* Cleanup handler, defined in pthread_cond_wait.c. */ - extern void __condvar_cleanup (void *arg) -@@ -102,7 +111,7 @@ __pthread_cond_timedwait (cond, mutex, a - #ifdef __NR_clock_gettime - INTERNAL_SYSCALL_DECL (err); - int ret; -- ret = INTERNAL_SYSCALL (clock_gettime, err, 2, -+ ret = INTERNAL_VSYSCALL (clock_gettime, err, 2, - (cond->__data.__nwaiters - & ((1 << COND_NWAITERS_SHIFT) - 1)), - &rt);